<!DOCTYPE html>
<html lang="en-US">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<title>get_bar_code_result [HALCON算子参考手册]</title>
<style type="text/css">
      body {
    color: #000000;
    background-color: #ffffff;
    margin: 0;
    font-family: Arial, Helvetica, sans-serif;
}

.body_main {
    margin-left: 35px;
    margin-right: 35px;
}

@media screen and (min-width:992px) {

    .body_main {
        margin-left: 10%;
        margin-right: 10%;
    }

    table.toctable {
        width: 80%
    }
}

@media screen and (min-width:1400px) {

    .body_main {
        margin-left: 15%;
        margin-right: 15%;
    }

    table.toctable {
        width: 70%
    }
}

body>div ul ul {
    margin-left: inherit;
}

a:link {
    color: #0044cc;
}

a:link,
a:visited {
    text-decoration: none;
}

a:link:hover,
a:visited:hover {
    text-decoration: underline;
}

th {
    text-align: left;
}

h1,
h2,
h3,
h4,
h5,
h6 {
    text-rendering: optimizeLegibility;
    color: #666666;
}

code {
    font-family: monospace,monospace;
}

h1 a.halconoperator {
    font-family: Arial, Helvetica, sans-serif;
    color: #666666;
}

h2 a.halconoperator {
    font-family: Arial, Helvetica, sans-serif;
    color: #666666;
}

hr {
    border: 0;
    border-top: solid 1px #f28d26;
}

.pre {
    display: block;
    padding-bottom: 1ex;
    font-family: monospace;
    white-space: pre;
}

pre {
    font-family: monospace, monospace;
    padding: 1ex;
    white-space: pre-wrap;
}

.toc {
    font-size: 80%;
    border-top: 1px dashed #f28d26;
    border-bottom: 1px dashed #f28d26;
    padding-top: 5px;
    padding-bottom: 5px;
}

.inv {
    margin: 0;
    border: 0;
    padding: 0;
}

.banner {
    color: #666666;
    padding-left: 1em;
}

.logo {
    background-color: white;
}

.keyboard {
    font-size: 80%;
    padding-left: 3px;
    padding-right: 3px;
    border-radius: 5px;
    border-width: 1px;
    border-style: solid;
    border-color: #f28d26;
    background-color: #f3f3f3;
}

.warning {
    margin-top: 2ex;
    margin-bottom: 1ex;
    padding: 10px;
    text-align: center;
    border: 1px solid;
    color: #bb0000;
    background-color: #fff7f7
}

.imprint {
    margin-top: 1ex;
    font-size: 80%;
    color: #666666;
}

.imprinthead {
    font-weight: bolder;
    color: #666666;
}

.indexlink {
    text-align: right;
    padding-bottom: 5px;
}

.postscript {
    margin-top: 2ex;
    font-size: 80%;
    color: #666666
}

.evenrow {
    background-color: #e7e7ef;
    vertical-align: top;
}

.oddrow {
    background-color: #f7f7ff;
    vertical-align: top;
}

.headrow {
    background-color: #97979f;
    color: #ffffff;
    vertical-align: top;
}

.logorow {
    vertical-align: top;
}

.error {
    color: red;
}

.var {
    font-style: italic
}

.halconoperator {
    font-family: monospace, monospace;
}

span.operator {
    font-family: monospace, monospace;
}

span.procedure {
    font-family: monospace, monospace;
}

span.operation {
    font-family: monospace, monospace;
}

span.feature {
    font-family: Arial, Helvetica, Homerton, sans-serif;
}

ul {
    padding-left: 1.2em;
}

li.dot {
    list-style-type: square;
    color: #f28d26;
}

.breadcrumb {
    font-size: 80%;
    color: white;
    background-color: #062d64;
    margin-bottom: 20px;
    padding-left: 35px;
    padding-right: 35px;
    padding-bottom: 15px;
}

.webbar {
    font-size: 80%;
    background-color: #dddddd;
    margin-top: 0px;
    margin-left: -35px;
    margin-right: -35px;
    margin-bottom: 0px;
    padding-top: 5px;
    padding-left: 35px;
    padding-right: 35px;
    padding-bottom: 5px;
}

.footer {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    border-top: 1px dashed #f28d26;
    font-size: 80%;
    color: #666666;
    padding-bottom: 8px;
}

.footer .socialmedia a {
    padding-left: 7px;
}

.socialmedia {
    padding-top: 10px;
}

.copyright {
    margin-top: 19px;
}

.breadcrumb a {
    color: #ffffff;
    border-bottom: 1px solid white;
}

.breadcrumb a:link:hover,
.breadcrumb a:visited:hover {
    text-decoration: none;
    border-bottom: none;
}

.heading {
    margin-top: 1ex;
    font-size: 110%;
    font-weight: bold;
    color: #666666;
}

.text {
    color: black;
}

.example {
    font-size: 80%;
    background-color: #f3f3f3;
    border: 1px dashed #666666;
    padding: 10px;
}

.displaymath {
    display: block;
    text-align: center;
    margin-top: 1ex;
    margin-bottom: 1ex;
}

.title {
    float: left;
    padding-top: 3px;
    padding-bottom: 3px;
}

.signnote {
    font-family: Arial, Helvetica, Homerton, sans-serif;
    font-size: 80%;
    color: #666666;
    font-weight: lighter;
    font-style: italic
}

.par {
    margin-bottom: 1.5em;
}

.parhead {
    text-align: right;
}

.parname {
    float: left;
}

.pardesc {
    font-size: 85%;
    margin-top: 0.5em;
    margin-bottom: 0.5em;
    margin-left: 2em;
}

.parcat {
    color: #666;
    font-weight: bold;
}

*[data-if=cpp],
*[data-if=c],
*[data-if=dotnet],
*[data-if=com],
*[data-if=python] {
    display: none;
}

.tabbar {
    text-align: right;
    border-bottom: 1px solid #f28d26;
    margin-bottom: 0.5em;
}

ul.tabs {
    padding-top: 3px;
    padding-bottom: 3px;
    margin-top: 10px;
    margin-bottom: 0;
    font-size: 80%
}

ul.tabs li {
    padding-top: 3px;
    padding-bottom: 3px;
    display: inline;
    overflow: hidden;
    list-style-type: none;
    margin: 0;
    margin-left: 8px;
    border-top: 1px solid #666;
    border-left: 1px solid #666;
    border-right: 1px solid #666;
}

ul.tabs li.active {
    border-left: 1px solid #f28d26;
    border-right: 1px solid #f28d26;
    border-top: 1px solid #f28d26;
    border-bottom: 1px solid #fff;
}

ul.tabs li.inactive {
    background-color: #eee;
}

ul.tabs li a {
    padding-left: 5px;
    padding-right: 5px;
    color: #666;
}

ul.tabs li a:link:hover {
    text-decoration: none;
}

ul.tabs li.inactive a {
    color: #666;
}

ul.tabs li.active a {
    color: black;
}

dl.generic dd {
    margin-bottom: 1em;
}

.pari {
    color: olive;
}

.paro {
    color: maroon;
}

.comment {
    font-size: 80%;
    color: green;
    white-space: nowrap;
}

table.grid {
    border-collapse: collapse;
}

table.grid td {
    padding: 5px;
    border: 1px solid;
}

table.layout {
    border: 0px;
}

table.layout td {
    padding: 5px;
}

table.table {
    border-collapse: collapse;
}

table.table td {
    padding: 5px;
    border-left: 0px;
    border-right: 0px;
}

table.table tr:last-child {
    border-bottom: 1px solid;
}

table.table th {
    padding: 5px;
    border-top: 1px solid;
    border-bottom: 1px solid;
    border-left: 0px;
    border-right: 0px;
}

.details_summary {
    cursor: pointer;
}

table.toctable {
    width: 100%;
}

table.toctable col:first-child {
    width: 20%;
}

table.toctable col:nth-last-child(2) {
    width: 8%;
}

table.altcolored tr:nth-child(even) {
    background-color: #f3f3f3;
}

    </style>
<!--OP_REF_STYLE_END-->
<script>
    <!--
var active_lang='hdevelop';function switchVisibility(obj,active_lang,new_lang)
{var display_style='inline';
for(var i=0;i<obj.length;i++)
{if(obj.item(i).getAttribute('data-if')==new_lang)
{obj.item(i).style.display=display_style;}
if(obj.item(i).getAttribute('data-if')==active_lang)
{obj.item(i).style.display='none';}}
return;}
function toggleLanguage(new_lang,initial)
{if(active_lang!=new_lang)
{var lis=document.getElementsByTagName('li');for(var i=0;i<lis.length;i++)
{if(lis.item(i).id=='syn-'+new_lang)
{lis.item(i).className='active';}
else
{lis.item(i).className='inactive';}}
var divs=document.getElementsByTagName('div');var spans=document.getElementsByTagName('span');switchVisibility(divs,active_lang,new_lang);switchVisibility(spans,active_lang,new_lang);if(!initial)
{setCookie("halcon_reference_language",new_lang,null,null);}
active_lang=new_lang;}
return;}
function setCookie(name,value,domain,exp_offset,path,secure)
{localStorage.setItem(name,value);}
function getCookie(name)
{return localStorage.getItem(name);}
function initialize()
{var qs=location.href.split('?')[1];var qs_lang_raw=location.href.split('interface=')[1];var qs_lang;if(qs_lang_raw)
{qs_lang=qs_lang_raw.split('#')[0];}
var cookie_lang=getCookie("halcon_reference_language");var new_lang;if((qs_lang=="hdevelop")||(qs_lang=="dotnet")||(qs_lang=="python")||(qs_lang=="cpp")||(qs_lang=="c"))
{new_lang=qs_lang;setCookie("halcon_reference_language",new_lang,null,null);}
else if((cookie_lang=="hdevelop")||(cookie_lang=="dotnet")||(cookie_lang=="python")||(cookie_lang=="cpp")||(cookie_lang=="c"))
{new_lang=cookie_lang;}
else
{new_lang="hdevelop";}
toggleLanguage(new_lang,1);return;}
-->

  </script>
</head>
<body onload="initialize();">
<div class="breadcrumb">
<br class="inv"><a href="index.html">目录</a> / <a href="toc_identification.html">Identification</a> / <a href="toc_identification_barcode.html">Bar Code</a><br class="inv">
</div>
<div class="body_main">
<div class="tabbar"><ul class="tabs">
<li id="syn-hdevelop" class="active"><a href="javascript:void(0);" onclick="toggleLanguage('hdevelop')" onfocus="blur()">HDevelop</a></li>
<li id="syn-dotnet" class="inactive"><a href="javascript:void(0);" onclick="toggleLanguage('dotnet')" onfocus="blur()">.NET</a></li>
<li id="syn-python" class="inactive"><a href="javascript:void(0);" onclick="toggleLanguage('python')" onfocus="blur()">Python</a></li>
<li id="syn-cpp" class="inactive"><a href="javascript:void(0);" onclick="toggleLanguage('cpp')" onfocus="blur()">C++</a></li>
<li id="syn-c" class="inactive"><a href="javascript:void(0);" onclick="toggleLanguage('c')" onfocus="blur()">C</a></li>
</ul></div>
<div class="indexlink">
<a href="index_classes.html"><span data-if="dotnet" style="display:none;">类别</span><span data-if="cpp" style="display:none;">类别</span></a><span data-if="dotnet" style="display:none;"> | </span><span data-if="cpp" style="display:none;"> | </span><a href="index_by_name.html">算子列表</a>
</div>
<!--OP_REF_HEADER_END-->
<h1 id="sec_name">
<span data-if="hdevelop" style="display:inline;">get_bar_code_result</span><span data-if="c" style="display:none;">T_get_bar_code_result</span><span data-if="cpp" style="display:none;">GetBarCodeResult</span><span data-if="dotnet" style="display:none;">GetBarCodeResult</span><span data-if="python" style="display:none;">get_bar_code_result</span> (算子名称)</h1>
<h2>名称</h2>
<p><code><span data-if="hdevelop" style="display:inline;">get_bar_code_result</span><span data-if="c" style="display:none;">T_get_bar_code_result</span><span data-if="cpp" style="display:none;">GetBarCodeResult</span><span data-if="dotnet" style="display:none;">GetBarCodeResult</span><span data-if="python" style="display:none;">get_bar_code_result</span></code> — Get the alphanumerical results that were accumulated during the
decoding of bar code symbols.</p>
<h2 id="sec_synopsis">参数签名</h2>
<div data-if="hdevelop" style="display:inline;">
<p>
<code><b>get_bar_code_result</b>( :  : <a href="#BarCodeHandle"><i>BarCodeHandle</i></a>, <a href="#CandidateHandle"><i>CandidateHandle</i></a>, <a href="#ResultName"><i>ResultName</i></a> : <a href="#BarCodeResults"><i>BarCodeResults</i></a>)</code></p>
</div>
<div data-if="c" style="display:none;">
<p>
<code>Herror <b>T_get_bar_code_result</b>(const Htuple <a href="#BarCodeHandle"><i>BarCodeHandle</i></a>, const Htuple <a href="#CandidateHandle"><i>CandidateHandle</i></a>, const Htuple <a href="#ResultName"><i>ResultName</i></a>, Htuple* <a href="#BarCodeResults"><i>BarCodeResults</i></a>)</code></p>
</div>
<div data-if="cpp" style="display:none;">
<p>
<code>void <b>GetBarCodeResult</b>(const HTuple&amp; <a href="#BarCodeHandle"><i>BarCodeHandle</i></a>, const HTuple&amp; <a href="#CandidateHandle"><i>CandidateHandle</i></a>, const HTuple&amp; <a href="#ResultName"><i>ResultName</i></a>, HTuple* <a href="#BarCodeResults"><i>BarCodeResults</i></a>)</code></p>
<p>
<code><a href="HTuple.html">HTuple</a> <a href="HBarCode.html">HBarCode</a>::<b>GetBarCodeResult</b>(const HTuple&amp; <a href="#CandidateHandle"><i>CandidateHandle</i></a>, const HString&amp; <a href="#ResultName"><i>ResultName</i></a>) const</code></p>
<p>
<code><a href="HTuple.html">HTuple</a> <a href="HBarCode.html">HBarCode</a>::<b>GetBarCodeResult</b>(const HString&amp; <a href="#CandidateHandle"><i>CandidateHandle</i></a>, const HString&amp; <a href="#ResultName"><i>ResultName</i></a>) const</code></p>
<p>
<code><a href="HTuple.html">HTuple</a> <a href="HBarCode.html">HBarCode</a>::<b>GetBarCodeResult</b>(const char* <a href="#CandidateHandle"><i>CandidateHandle</i></a>, const char* <a href="#ResultName"><i>ResultName</i></a>) const</code></p>
<p>
<code><a href="HTuple.html">HTuple</a> <a href="HBarCode.html">HBarCode</a>::<b>GetBarCodeResult</b>(const wchar_t* <a href="#CandidateHandle"><i>CandidateHandle</i></a>, const wchar_t* <a href="#ResultName"><i>ResultName</i></a>) const  <span class="signnote">
            (
            Windows only)
          </span></code></p>
</div>
<div data-if="com" style="display:none;"></div>
<div data-if="dotnet" style="display:none;">
<p>
<code>static void <a href="HOperatorSet.html">HOperatorSet</a>.<b>GetBarCodeResult</b>(<a href="HTuple.html">HTuple</a> <a href="#BarCodeHandle"><i>barCodeHandle</i></a>, <a href="HTuple.html">HTuple</a> <a href="#CandidateHandle"><i>candidateHandle</i></a>, <a href="HTuple.html">HTuple</a> <a href="#ResultName"><i>resultName</i></a>, out <a href="HTuple.html">HTuple</a> <a href="#BarCodeResults"><i>barCodeResults</i></a>)</code></p>
<p>
<code><a href="HTuple.html">HTuple</a> <a href="HBarCode.html">HBarCode</a>.<b>GetBarCodeResult</b>(<a href="HTuple.html">HTuple</a> <a href="#CandidateHandle"><i>candidateHandle</i></a>, string <a href="#ResultName"><i>resultName</i></a>)</code></p>
<p>
<code><a href="HTuple.html">HTuple</a> <a href="HBarCode.html">HBarCode</a>.<b>GetBarCodeResult</b>(string <a href="#CandidateHandle"><i>candidateHandle</i></a>, string <a href="#ResultName"><i>resultName</i></a>)</code></p>
</div>
<div data-if="python" style="display:none;">
<p>
<code>def <b>get_bar_code_result</b>(<a href="#BarCodeHandle"><i>bar_code_handle</i></a>: HHandle, <a href="#CandidateHandle"><i>candidate_handle</i></a>: Union[int, str], <a href="#ResultName"><i>result_name</i></a>: str) -&gt; Sequence[Union[int, float, str]]</code></p>
<p>
<code>def <b>get_bar_code_result_s</b>(<a href="#BarCodeHandle"><i>bar_code_handle</i></a>: HHandle, <a href="#CandidateHandle"><i>candidate_handle</i></a>: Union[int, str], <a href="#ResultName"><i>result_name</i></a>: str) -&gt; Union[int, float, str]</code></p>
</div>
<h2 id="sec_description">描述</h2>
<p>该算子 <code><span data-if="hdevelop" style="display:inline">get_bar_code_result</span><span data-if="c" style="display:none">get_bar_code_result</span><span data-if="cpp" style="display:none">GetBarCodeResult</span><span data-if="com" style="display:none">GetBarCodeResult</span><span data-if="dotnet" style="display:none">GetBarCodeResult</span><span data-if="python" style="display:none">get_bar_code_result</span></code> returns
alphanumeric results of the reading process in <a href="#BarCodeResults"><i><code><span data-if="hdevelop" style="display:inline">BarCodeResults</span><span data-if="c" style="display:none">BarCodeResults</span><span data-if="cpp" style="display:none">BarCodeResults</span><span data-if="com" style="display:none">BarCodeResults</span><span data-if="dotnet" style="display:none">barCodeResults</span><span data-if="python" style="display:none">bar_code_results</span></code></i></a>.
In order to obtain a result, the bar code model (<a href="#BarCodeHandle"><i><code><span data-if="hdevelop" style="display:inline">BarCodeHandle</span><span data-if="c" style="display:none">BarCodeHandle</span><span data-if="cpp" style="display:none">BarCodeHandle</span><span data-if="com" style="display:none">BarCodeHandle</span><span data-if="dotnet" style="display:none">barCodeHandle</span><span data-if="python" style="display:none">bar_code_handle</span></code></i></a>)
and the index of the resulting symbol or candidate
(<a href="#CandidateHandle"><i><code><span data-if="hdevelop" style="display:inline">CandidateHandle</span><span data-if="c" style="display:none">CandidateHandle</span><span data-if="cpp" style="display:none">CandidateHandle</span><span data-if="com" style="display:none">CandidateHandle</span><span data-if="dotnet" style="display:none">candidateHandle</span><span data-if="python" style="display:none">candidate_handle</span></code></i></a>) are needed. <a href="#ResultName"><i><code><span data-if="hdevelop" style="display:inline">ResultName</span><span data-if="c" style="display:none">ResultName</span><span data-if="cpp" style="display:none">ResultName</span><span data-if="com" style="display:none">ResultName</span><span data-if="dotnet" style="display:none">resultName</span><span data-if="python" style="display:none">result_name</span></code></i></a> determines what
kind of result is to be returned.
</p>
<p><a href="#CandidateHandle"><i><code><span data-if="hdevelop" style="display:inline">CandidateHandle</span><span data-if="c" style="display:none">CandidateHandle</span><span data-if="cpp" style="display:none">CandidateHandle</span><span data-if="com" style="display:none">CandidateHandle</span><span data-if="dotnet" style="display:none">candidateHandle</span><span data-if="python" style="display:none">candidate_handle</span></code></i></a> refers to the read candidates in the order as
returned by 该算子 <a href="find_bar_code.html"><code><span data-if="hdevelop" style="display:inline">find_bar_code</span><span data-if="c" style="display:none">find_bar_code</span><span data-if="cpp" style="display:none">FindBarCode</span><span data-if="com" style="display:none">FindBarCode</span><span data-if="dotnet" style="display:none">FindBarCode</span><span data-if="python" style="display:none">find_bar_code</span></code></a>.
This implies, the possible values for <a href="#CandidateHandle"><i><code><span data-if="hdevelop" style="display:inline">CandidateHandle</span><span data-if="c" style="display:none">CandidateHandle</span><span data-if="cpp" style="display:none">CandidateHandle</span><span data-if="com" style="display:none">CandidateHandle</span><span data-if="dotnet" style="display:none">candidateHandle</span><span data-if="python" style="display:none">candidate_handle</span></code></i></a> depend on the
queried result:
</p>
<ul>
<li>
<p> Referring to decoded symbols, values from 0 to (n-1) are
possible (with n as the total number of successfully decoded symbols).
</p>
</li>
<li>
<p> Referring to candidates, values from 0 to (m-1) are possible
(with m as the total number of candidates).
</p>
</li>
</ul>
<p>
In case the asked result is single valued,
<a href="#CandidateHandle"><i><code><span data-if="hdevelop" style="display:inline">CandidateHandle</span><span data-if="c" style="display:none">CandidateHandle</span><span data-if="cpp" style="display:none">CandidateHandle</span><span data-if="com" style="display:none">CandidateHandle</span><span data-if="dotnet" style="display:none">candidateHandle</span><span data-if="python" style="display:none">candidate_handle</span></code></i></a> can also be set to <i><span data-if="hdevelop" style="display:inline">'all'</span><span data-if="c" style="display:none">"all"</span><span data-if="cpp" style="display:none">"all"</span><span data-if="com" style="display:none">"all"</span><span data-if="dotnet" style="display:none">"all"</span><span data-if="python" style="display:none">"all"</span></i>
to return the results of all symbols or candidates.
</p>
<p>The following values are supported for <a href="#ResultName"><i><code><span data-if="hdevelop" style="display:inline">ResultName</span><span data-if="c" style="display:none">ResultName</span><span data-if="cpp" style="display:none">ResultName</span><span data-if="com" style="display:none">ResultName</span><span data-if="dotnet" style="display:none">resultName</span><span data-if="python" style="display:none">result_name</span></code></i></a>:
</p>
<dl class="generic">

<dt><b><i><span data-if="hdevelop" style="display:inline">'decoded_strings'</span><span data-if="c" style="display:none">"decoded_strings"</span><span data-if="cpp" style="display:none">"decoded_strings"</span><span data-if="com" style="display:none">"decoded_strings"</span><span data-if="dotnet" style="display:none">"decoded_strings"</span><span data-if="python" style="display:none">"decoded_strings"</span></i>:</b></dt>
<dd>
<p>

returns the decoded result as a string in a human-readable format.
Note that only data characters are contained in the decoded string.
Start, stop, and check characters are excluded. For optional
check characters the behavior depends on the value of the
<i><span data-if="hdevelop" style="display:inline">'check_char'</span><span data-if="c" style="display:none">"check_char"</span><span data-if="cpp" style="display:none">"check_char"</span><span data-if="com" style="display:none">"check_char"</span><span data-if="dotnet" style="display:none">"check_char"</span><span data-if="python" style="display:none">"check_char"</span></i> (see <a href="set_bar_code_param.html"><code><span data-if="hdevelop" style="display:inline">set_bar_code_param</span><span data-if="c" style="display:none">set_bar_code_param</span><span data-if="cpp" style="display:none">SetBarCodeParam</span><span data-if="com" style="display:none">SetBarCodeParam</span><span data-if="dotnet" style="display:none">SetBarCodeParam</span><span data-if="python" style="display:none">set_bar_code_param</span></code></a> for details)
parameter.</p>
<p>
The returned result is a single value.
</p>
</dd>

<dt><b><i><span data-if="hdevelop" style="display:inline">'decoded_types'</span><span data-if="c" style="display:none">"decoded_types"</span><span data-if="cpp" style="display:none">"decoded_types"</span><span data-if="com" style="display:none">"decoded_types"</span><span data-if="dotnet" style="display:none">"decoded_types"</span><span data-if="python" style="display:none">"decoded_types"</span></i>:</b></dt>
<dd>
<p>

returns the bar code type of the decoded result as a string. This is
especially important in the context of autodiscrimination (see
<a href="find_bar_code.html"><code><span data-if="hdevelop" style="display:inline">find_bar_code</span><span data-if="c" style="display:none">find_bar_code</span><span data-if="cpp" style="display:none">FindBarCode</span><span data-if="com" style="display:none">FindBarCode</span><span data-if="dotnet" style="display:none">FindBarCode</span><span data-if="python" style="display:none">find_bar_code</span></code></a>).</p>
<p>
The returned result is a single value.
</p>
</dd>

<dt><b><i><span data-if="hdevelop" style="display:inline">'decoded_data'</span><span data-if="c" style="display:none">"decoded_data"</span><span data-if="cpp" style="display:none">"decoded_data"</span><span data-if="com" style="display:none">"decoded_data"</span><span data-if="dotnet" style="display:none">"decoded_data"</span><span data-if="python" style="display:none">"decoded_data"</span></i>:</b></dt>
<dd>
<p>

returns the decoded result as a tuple of byte values. In contrast
to <i><span data-if="hdevelop" style="display:inline">'decoded_reference'</span><span data-if="c" style="display:none">"decoded_reference"</span><span data-if="cpp" style="display:none">"decoded_reference"</span><span data-if="com" style="display:none">"decoded_reference"</span><span data-if="dotnet" style="display:none">"decoded_reference"</span><span data-if="python" style="display:none">"decoded_reference"</span></i>, this contains the same high level
processed data that is also returned for <i><span data-if="hdevelop" style="display:inline">'decoded_strings'</span><span data-if="c" style="display:none">"decoded_strings"</span><span data-if="cpp" style="display:none">"decoded_strings"</span><span data-if="com" style="display:none">"decoded_strings"</span><span data-if="dotnet" style="display:none">"decoded_strings"</span><span data-if="python" style="display:none">"decoded_strings"</span></i>.
However, if the data contains binary non-printable characters, this
parameter is more convenient. Also, for Code 128 or Code 93, the
decoded data may contain NULL characters. In this case, the data
can only be fully retrieved using this parameter, as the NULL
character will otherwise terminate the string.
</p>
</dd>

<dt><b><i><span data-if="hdevelop" style="display:inline">'decoded_reference'</span><span data-if="c" style="display:none">"decoded_reference"</span><span data-if="cpp" style="display:none">"decoded_reference"</span><span data-if="com" style="display:none">"decoded_reference"</span><span data-if="dotnet" style="display:none">"decoded_reference"</span><span data-if="python" style="display:none">"decoded_reference"</span></i>:</b></dt>
<dd>
<p>

returns the underlying decoded reference data. It comprises all
original characters of the symbol, i.e., data characters,
potential start or stop characters and check characters if present.
The specific result depends on the code type:
</p>
<ul>
<li>
<p> For codes taking only numeric data, like, e.g., the
EAN/UPC codes, the GS1 DataBar codes (except the GS1 DataBar
Expanded variants), or the 2/5 codes, the decoded reference data
takes the same values as the decoded string data including check
characters.
</p>
</li>
<li>
<p> For codes with alphanumeric data, like for example
Code 128 or Code 39 the decoded reference data are the indices
of the respective decoding table.
</p>
</li>
<li>
<p> For GS1-128, the decoded reference data are the indices
of the respective decoding table.
The special character FNC1 appears with value 102.
</p>
</li>
<li>
<p> For GS1 DataBar Expanded and GS1 DataBar Expanded Stacked, the
reference values are the ASCII codes of the decoded data (see also
<a href="toc_tuple_stringoperations.html">Tuple / String Operations</a>), where the special character FNC1
appears with value 29.
</p>
</li>
<li>
<p> Furthermore, for all codes
from the GS1 DataBar family the first reference value represents
a linkage flag with value of 1 if the flag is set and 0 otherwise.
</p>
</li>
</ul>
<p>
The result is returned as a tuple.
</p>
</dd>

<dt><b><i><span data-if="hdevelop" style="display:inline">'composite_strings'</span><span data-if="c" style="display:none">"composite_strings"</span><span data-if="cpp" style="display:none">"composite_strings"</span><span data-if="com" style="display:none">"composite_strings"</span><span data-if="dotnet" style="display:none">"composite_strings"</span><span data-if="python" style="display:none">"composite_strings"</span></i>:</b></dt>
<dd>
<p>

returns the decoded string of a GS1 Composite component. For further
details see the description of the parameter <i><span data-if="hdevelop" style="display:inline">'composite_code'</span><span data-if="c" style="display:none">"composite_code"</span><span data-if="cpp" style="display:none">"composite_code"</span><span data-if="com" style="display:none">"composite_code"</span><span data-if="dotnet" style="display:none">"composite_code"</span><span data-if="python" style="display:none">"composite_code"</span></i>
of <a href="set_bar_code_param.html"><code><span data-if="hdevelop" style="display:inline">set_bar_code_param</span><span data-if="c" style="display:none">set_bar_code_param</span><span data-if="cpp" style="display:none">SetBarCodeParam</span><span data-if="com" style="display:none">SetBarCodeParam</span><span data-if="dotnet" style="display:none">SetBarCodeParam</span><span data-if="python" style="display:none">set_bar_code_param</span></code></a>.</p>
<p>
The returned result is a single value.
</p>
</dd>

<dt><b><i><span data-if="hdevelop" style="display:inline">'composite_reference'</span><span data-if="c" style="display:none">"composite_reference"</span><span data-if="cpp" style="display:none">"composite_reference"</span><span data-if="com" style="display:none">"composite_reference"</span><span data-if="dotnet" style="display:none">"composite_reference"</span><span data-if="python" style="display:none">"composite_reference"</span></i>:</b></dt>
<dd>
<p>

returns the decoded string of a GS1 Composite component as a tuple of
byte values. If the data contains binary non-printable characters, this
parameter is more convenient than <i><span data-if="hdevelop" style="display:inline">'composite_strings'</span><span data-if="c" style="display:none">"composite_strings"</span><span data-if="cpp" style="display:none">"composite_strings"</span><span data-if="com" style="display:none">"composite_strings"</span><span data-if="dotnet" style="display:none">"composite_strings"</span><span data-if="python" style="display:none">"composite_strings"</span></i>.
</p>
</dd>

<dt><b><i><span data-if="hdevelop" style="display:inline">'orientation'</span><span data-if="c" style="display:none">"orientation"</span><span data-if="cpp" style="display:none">"orientation"</span><span data-if="com" style="display:none">"orientation"</span><span data-if="dotnet" style="display:none">"orientation"</span><span data-if="python" style="display:none">"orientation"</span></i>:</b></dt>
<dd>
<p>

returns the orientation for the specified result. The
<i><span data-if="hdevelop" style="display:inline">'orientation'</span><span data-if="c" style="display:none">"orientation"</span><span data-if="cpp" style="display:none">"orientation"</span><span data-if="com" style="display:none">"orientation"</span><span data-if="dotnet" style="display:none">"orientation"</span><span data-if="python" style="display:none">"orientation"</span></i> of a bar code is defined as the angle between
its reading direction and the horizontal image axis. The angle is
positive in counter clockwise direction and is given in degrees.
Note that the reading direction is perpendicular to the bars of the bar
code. In cases where the orientation of the bars can not be determined
reliably, e.g., for distorted codes, the orientation of the scanlines is
returned.</p>
<p>
The returned result is a single value.</p>
<p>
<span class="pardesc"><span class="parcat">Value range:
      </span></span> <i>-180.0</i> .. <i>180.0</i>.
</p>
</dd>

<dt><b><i><span data-if="hdevelop" style="display:inline">'element_size'</span><span data-if="c" style="display:none">"element_size"</span><span data-if="cpp" style="display:none">"element_size"</span><span data-if="com" style="display:none">"element_size"</span><span data-if="dotnet" style="display:none">"element_size"</span><span data-if="python" style="display:none">"element_size"</span></i>:</b></dt>
<dd>
<p>

returns the size of bar code elements for the specified result.</p>
<p>
The returned result is a single value.
</p>
</dd>

<dt><b><i><span data-if="hdevelop" style="display:inline">'aborted'</span><span data-if="c" style="display:none">"aborted"</span><span data-if="cpp" style="display:none">"aborted"</span><span data-if="com" style="display:none">"aborted"</span><span data-if="dotnet" style="display:none">"aborted"</span><span data-if="python" style="display:none">"aborted"</span></i>:</b></dt>
<dd>
<p>

returns a value indicating whether <a href="find_bar_code.html"><code><span data-if="hdevelop" style="display:inline">find_bar_code</span><span data-if="c" style="display:none">find_bar_code</span><span data-if="cpp" style="display:none">FindBarCode</span><span data-if="com" style="display:none">FindBarCode</span><span data-if="dotnet" style="display:none">FindBarCode</span><span data-if="python" style="display:none">find_bar_code</span></code></a> was aborted or
not:
</p>
<dl class="generic">

<dt><b>0 - <i>completed</i></b></dt>
<dd><p>

<a href="find_bar_code.html"><code><span data-if="hdevelop" style="display:inline">find_bar_code</span><span data-if="c" style="display:none">find_bar_code</span><span data-if="cpp" style="display:none">FindBarCode</span><span data-if="com" style="display:none">FindBarCode</span><span data-if="dotnet" style="display:none">FindBarCode</span><span data-if="python" style="display:none">find_bar_code</span></code></a> completed.
</p></dd>

<dt><b>1 - <i>aborted</i></b></dt>
<dd><p>

<a href="find_bar_code.html"><code><span data-if="hdevelop" style="display:inline">find_bar_code</span><span data-if="c" style="display:none">find_bar_code</span><span data-if="cpp" style="display:none">FindBarCode</span><span data-if="com" style="display:none">FindBarCode</span><span data-if="dotnet" style="display:none">FindBarCode</span><span data-if="python" style="display:none">find_bar_code</span></code></a> was aborted by a timeout,
see <a href="set_bar_code_param.html"><code><span data-if="hdevelop" style="display:inline">set_bar_code_param</span><span data-if="c" style="display:none">set_bar_code_param</span><span data-if="cpp" style="display:none">SetBarCodeParam</span><span data-if="com" style="display:none">SetBarCodeParam</span><span data-if="dotnet" style="display:none">SetBarCodeParam</span><span data-if="python" style="display:none">set_bar_code_param</span></code></a>.
</p></dd>

<dt><b>2 - <i>aborted</i></b></dt>
<dd><p>

<a href="find_bar_code.html"><code><span data-if="hdevelop" style="display:inline">find_bar_code</span><span data-if="c" style="display:none">find_bar_code</span><span data-if="cpp" style="display:none">FindBarCode</span><span data-if="com" style="display:none">FindBarCode</span><span data-if="dotnet" style="display:none">FindBarCode</span><span data-if="python" style="display:none">find_bar_code</span></code></a> was aborted using
<a href="set_bar_code_param.html"><code><span data-if="hdevelop" style="display:inline">set_bar_code_param</span><span data-if="c" style="display:none">set_bar_code_param</span><span data-if="cpp" style="display:none">SetBarCodeParam</span><span data-if="com" style="display:none">SetBarCodeParam</span><span data-if="dotnet" style="display:none">SetBarCodeParam</span><span data-if="python" style="display:none">set_bar_code_param</span></code></a> with <i><span data-if="hdevelop" style="display:inline">'abort'</span><span data-if="c" style="display:none">"abort"</span><span data-if="cpp" style="display:none">"abort"</span><span data-if="com" style="display:none">"abort"</span><span data-if="dotnet" style="display:none">"abort"</span><span data-if="python" style="display:none">"abort"</span></i>.
</p></dd>
</dl>
<p>
The returned result is a single value.
</p>
</dd>

<dt><b><i><span data-if="hdevelop" style="display:inline">'quality_isoiec15416'</span><span data-if="c" style="display:none">"quality_isoiec15416"</span><span data-if="cpp" style="display:none">"quality_isoiec15416"</span><span data-if="com" style="display:none">"quality_isoiec15416"</span><span data-if="dotnet" style="display:none">"quality_isoiec15416"</span><span data-if="python" style="display:none">"quality_isoiec15416"</span></i>:</b></dt>
<dd>
<p>

returns a tuple with the assessment of print quality in compliance
with the international standard ISO/IEC 15416:2016.
Note that the print quality of a bar code can only be evaluated
if the bar code was decoded by <a href="find_bar_code.html"><code><span data-if="hdevelop" style="display:inline">find_bar_code</span><span data-if="c" style="display:none">find_bar_code</span><span data-if="cpp" style="display:none">FindBarCode</span><span data-if="com" style="display:none">FindBarCode</span><span data-if="dotnet" style="display:none">FindBarCode</span><span data-if="python" style="display:none">find_bar_code</span></code></a> in
<i><span data-if="hdevelop" style="display:inline">'persistence'</span><span data-if="c" style="display:none">"persistence"</span><span data-if="cpp" style="display:none">"persistence"</span><span data-if="com" style="display:none">"persistence"</span><span data-if="dotnet" style="display:none">"persistence"</span><span data-if="python" style="display:none">"persistence"</span></i> mode (see <a href="set_bar_code_param.html"><code><span data-if="hdevelop" style="display:inline">set_bar_code_param</span><span data-if="c" style="display:none">set_bar_code_param</span><span data-if="cpp" style="display:none">SetBarCodeParam</span><span data-if="com" style="display:none">SetBarCodeParam</span><span data-if="dotnet" style="display:none">SetBarCodeParam</span><span data-if="python" style="display:none">set_bar_code_param</span></code></a> for
further details).
</p>
<p>The first tuple element always contains the overall print quality of the
symbol. The length of the tuple and the interpretation of the remaining
elements depend on whether a simple 1D bar code is evaluated
(e.g., EAN-13, Code 128, GS1 DataBar) or a composite bar code
(e.g., GS1 DataBar Omnidirectional CC-A, GS1 DataBar Limited CC-B).
The names of the grades can be queried by setting <a href="#ResultName"><i><code><span data-if="hdevelop" style="display:inline">ResultName</span><span data-if="c" style="display:none">ResultName</span><span data-if="cpp" style="display:none">ResultName</span><span data-if="com" style="display:none">ResultName</span><span data-if="dotnet" style="display:none">resultName</span><span data-if="python" style="display:none">result_name</span></code></i></a>
to <i><span data-if="hdevelop" style="display:inline">'quality_isoiec15416_labels'</span><span data-if="c" style="display:none">"quality_isoiec15416_labels"</span><span data-if="cpp" style="display:none">"quality_isoiec15416_labels"</span><span data-if="com" style="display:none">"quality_isoiec15416_labels"</span><span data-if="dotnet" style="display:none">"quality_isoiec15416_labels"</span><span data-if="python" style="display:none">"quality_isoiec15416_labels"</span></i>, see below.
</p>
<p>For the print quality assessment a set of scan reflectance
profiles (scan lines) is generated across the symbol. For each scan
line a grade for each of the evaluated parameters is allocated.
</p>
<p>For compatibility reasons these grades are numbers from 0 to 4,
where 0 is the worst and 4 the best possible grade.
Setting <code><span data-if="hdevelop" style="display:inline">ResultName</span><span data-if="c" style="display:none">ResultName</span><span data-if="cpp" style="display:none">ResultName</span><span data-if="com" style="display:none">ResultName</span><span data-if="dotnet" style="display:none">resultName</span><span data-if="python" style="display:none">result_name</span></code> to
<i><span data-if="hdevelop" style="display:inline">'quality_isoiec15416_float_grades'</span><span data-if="c" style="display:none">"quality_isoiec15416_float_grades"</span><span data-if="cpp" style="display:none">"quality_isoiec15416_float_grades"</span><span data-if="com" style="display:none">"quality_isoiec15416_float_grades"</span><span data-if="dotnet" style="display:none">"quality_isoiec15416_float_grades"</span><span data-if="python" style="display:none">"quality_isoiec15416_float_grades"</span></i>, the grades are returned
in accordance with the standard with one decimal place.
The worst of all parameter grades of a scan line is defined
as the scan reflectance profile grade. Thus, each scan line has an own
grade representing the respective minimal grade of all parameter grades
of this scan line. The arithmetic mean of all those scan line grades is
then returned as the overall symbol grade.
</p>
<p>If a grade is not defined for the bar code type of the decoded symbol,
<i><span data-if="hdevelop" style="display:inline">'N/A'</span><span data-if="c" style="display:none">"N/A"</span><span data-if="cpp" style="display:none">"N/A"</span><span data-if="com" style="display:none">"N/A"</span><span data-if="dotnet" style="display:none">"N/A"</span><span data-if="python" style="display:none">"N/A"</span></i> is returned. In this case, the overall symbol grade is
also <i><span data-if="hdevelop" style="display:inline">'N/A'</span><span data-if="c" style="display:none">"N/A"</span><span data-if="cpp" style="display:none">"N/A"</span><span data-if="com" style="display:none">"N/A"</span><span data-if="dotnet" style="display:none">"N/A"</span><span data-if="python" style="display:none">"N/A"</span></i>.
</p>
<p>It is important to note that, even though the implementation is
strictly based on the standard, the computation of the print quality
grades depends on the decoding algorithm used. Thus, different
bar code readers (of different vendors) can potentially produce
slightly different results in the print quality assessment.
</p>
<p>The tuple describing the print quality depends on whether the bar code
is simple or composite:
</p>
<dl class="generic">

<dt><b><b>simple 1D bar codes</b>:</b></dt>
<dd>
<p>

The valuation of the print quality is described in a tuple with the
following nine elements:
</p>
<dl class="generic">

<dt><b>0 - <i>overall quality</i>:</b></dt>
<dd><p>

The arithmetic mean of the scan reflectance profile grade of each
scan line. Note, that this value is, in most cases, not the minimum
of the other symbol grades, because it depends on the individual
scan reflectance profile grades.
</p></dd>

<dt><b>1 - <i>decode</i>:</b></dt>
<dd><p>

Set to <i>4</i> when the reflectance profile of the symbol
could be decoded according to the reference decode algorithm for the
symbology and <i>0</i>, otherwise.
Note that HALCON's decode algorithm differs from the reference
decode algorithm. Thus, in many cases HALCON can decode the symbol
although the <i>decode</i> grade according to the standard is
<i>0</i>.
</p></dd>

<dt><b>2 - <i>symbol contrast</i>:</b></dt>
<dd><p>

The range between the minimal and the maximal value in the
reflectance profile. A strong contrast results in a good grading.
</p></dd>

<dt><b>3 - <i>minimal reflectance</i>:</b></dt>
<dd><p>

Set to <i>4</i> if the lowest reflectance value in the scan
reflectance profile is lower or equal to 0.5 of the maximal
reflectance value. Otherwise a value of <i>0</i> is assigned.
</p></dd>

<dt><b>4 - <i>minimal edge contrast</i>:</b></dt>
<dd><p>

The contrast between any two adjacent elements, both
bar-to-space or space-to-bar. The <i>minimal edge contrast</i>
grades the minimum of the edge contrast values measured in the
reflectance profile.
</p></dd>

<dt><b>5 - <i>modulation</i>:</b></dt>
<dd><p>

Indicates how strong the amplitudes of the bar code elements are.
Big amplitudes make the assignment of the elements to bars or spaces
more certain, resulting in a high modulation grade.
</p></dd>

<dt><b>6 - <i>defects</i>:</b></dt>
<dd><p>

Reflects irregularities in the gray value profile found within
elements and quiet zones.
</p></dd>

<dt><b>7 - <i>decodability</i>:</b></dt>
<dd><p>

Reflects deviations of the element widths from the nominal widths
defined for the corresponding symbology.
</p></dd>

<dt><b>8 - <i>additional requirements</i>:</b></dt>
<dd>
<p>

A grade concerning symbology specific requirements of the bar code.
It mostly regards the required quiet zones, but sometimes it can
also be related to e.g., wide/narrow ratio, inter-character gaps,
guarding patterns.
For the following code types the conformity to the corresponding
ISO/IEC standard cannot be guaranteed. This is mainly because the
computation of the <i>additional requirements</i> requires the
availability of metrical information.
</p>
<dl class="generic">

<dt><b>Code 39:</b></dt>
<dd><p>

the grade of the inter-character gap depends on the measured
narrow element width given in millimeters.
Since in <a href="find_bar_code.html"><code><span data-if="hdevelop" style="display:inline">find_bar_code</span><span data-if="c" style="display:none">find_bar_code</span><span data-if="cpp" style="display:none">FindBarCode</span><span data-if="com" style="display:none">FindBarCode</span><span data-if="dotnet" style="display:none">FindBarCode</span><span data-if="python" style="display:none">find_bar_code</span></code></a> neither metric information is
available nor can be calculated, <code><span data-if="hdevelop" style="display:inline">get_bar_code_result</span><span data-if="c" style="display:none">get_bar_code_result</span><span data-if="cpp" style="display:none">GetBarCodeResult</span><span data-if="com" style="display:none">GetBarCodeResult</span><span data-if="dotnet" style="display:none">GetBarCodeResult</span><span data-if="python" style="display:none">get_bar_code_result</span></code> will
only return the grade for the inter-character gap assuming that
the measured narrow element width is less than 0.287mm.
</p></dd>

<dt><b>EAN-13, EAN-8, UPC-A, UPC-E (including all add-on variants):</b></dt>
<dd><p>

ISO/IEC 15420:2009 specifies the magnification factors as an
additional criterion. A computation of this criterion is not
possible since this would require knowledge of the metrical size
of the bar code.
</p></dd>
</dl>

</dd>
</dl>

<p>While <i>overall quality</i> is the final symbol grade to be
reported, the rest of the grades give information for possible
causes for poor quality of a symbol. A detailed list of frequently
appearing defects and their effect on the individual grades can be
found with the ISO/IEC 15416:2016 standard.
</p>
</dd>

<dt><b><b>composite bar codes</b>:</b></dt>
<dd>
<p>

The valuation of the print quality is described in a tuple with 24
elements, which we organize for better clarity in three groups:
<code>OVERALL</code>, <code>LINEAR</code>, and <code>COMPOSITE</code>,
the latter one including a sub group.
The overall grades that are listed in the group <code>OVERALL</code>.
The grades in the groups <code>LINEAR</code> and <code>COMPOSITE</code> give
information of possible causes for poor quality of the symbol.
</p>
<p>In the following, the individual tuple elements with their
corresponding index and definition are listed in groups.
</p>
<ul>
<li>
<p> The group <code>OVERALL</code>:
</p>
<p>These grades represent the respective minimum of all individual
grades of each group.
</p>
<dl class="generic">

<dt><b>0 - <i>overall quality</i>:</b></dt>
<dd><p>

The final symbol grade to be reported.
It returns the minimum of all grades.
</p></dd>

<dt><b>1 - <i>overall linear</i>:</b></dt>
<dd><p>

The overall grade for the symbols of the group
<code>LINEAR</code>, the linear 1D symbols. This grade returns the
minimum of all grades belonging to the group.
</p></dd>

<dt><b>2 - <i>overall composite</i>:</b></dt>
<dd><p>

The overall grade for the symbols of the group
<code>COMPOSITE</code>, the composite 2D symbols. This grade returns
the minimum of all grades belonging to the group.
</p></dd>
</dl>

</li>
<li>
<p> The group <code>LINEAR</code>:
</p>
<p>The interpretation of the grades in the <code>LINEAR</code> group
correspond to those for simple 1D bar codes described above.
</p>
<dl class="generic">

<dt><b>3 - <i>decode</i></b></dt>
<dd>

</dd>

<dt><b>4 - <i>symbol contrast</i></b></dt>
<dd>

</dd>

<dt><b>5 - <i>minimal reflectance</i></b></dt>
<dd>

</dd>

<dt><b>6 - <i>minimal edge contrast</i></b></dt>
<dd>

</dd>

<dt><b>7 - <i>modulation</i></b></dt>
<dd>

</dd>

<dt><b>8 - <i>defects</i></b></dt>
<dd>

</dd>

<dt><b>9 - <i>decodability</i></b></dt>
<dd>

</dd>

<dt><b>10 - <i>additional requirements</i></b></dt>
<dd>

</dd>
</dl>

</li>
<li>
<p> The group <code>COMPOSITE</code>:
</p>
<p>these grades are equivalent to the quality grades for PDF 417 data
code symbols, thus of two-dimensional symbols according to
ICO/IEC 15415:2011 (see <i><span data-if="hdevelop" style="display:inline">'quality_isoiec15415'</span><span data-if="c" style="display:none">"quality_isoiec15415"</span><span data-if="cpp" style="display:none">"quality_isoiec15415"</span><span data-if="com" style="display:none">"quality_isoiec15415"</span><span data-if="dotnet" style="display:none">"quality_isoiec15415"</span><span data-if="python" style="display:none">"quality_isoiec15415"</span></i> in
<a href="get_data_code_2d_results.html"><code><span data-if="hdevelop" style="display:inline">get_data_code_2d_results</span><span data-if="c" style="display:none">get_data_code_2d_results</span><span data-if="cpp" style="display:none">GetDataCode2dResults</span><span data-if="com" style="display:none">GetDataCode2dResults</span><span data-if="dotnet" style="display:none">GetDataCode2dResults</span><span data-if="python" style="display:none">get_data_code_2d_results</span></code></a>).
However, there is a difference:
For PDF 417 data code symbols a start/stop pattern is used for the
evaluation concerning the quality of the reflectance profile.
In contrast, for composite bar codes so-called Raw Address
Patterns (RAP) are used instead of a start/stop pattern.
The grades of the respective RAP symbols are organized in the
sub group <code>COMPOSITE RAP</code> and are consistent with the grades
for simple 1D bar codes.
</p>
<dl class="generic">

<dt><b>11 - <i>decode</i>:</b></dt>
<dd><p>

Grade for the decodability of the composite symbol part.
Its meaning and determination is equivalent to the one for simple
1D bar codes described above.
</p></dd>

<dt><b>12 - <i>RAP overall</i>:</b></dt>
<dd><p>

Minimum of all individual grades of the sub group
<code>COMPOSITE RAP</code>.
</p></dd>

<dt><b>13 - <i>RAP contrast</i>:</b></dt>
<dd><p>

Grade of the <code>COMPOSITE RAP</code> sub group, corresponds to the
one for simple 1D bar codes as described above.
</p></dd>

<dt><b>14 - <i>RAP minimal reflectance</i>:</b></dt>
<dd><p>

Grade of the <code>COMPOSITE RAP</code> sub group, corresponds to the
one for simple 1D bar codes as described above.
</p></dd>

<dt><b>15 - <i>RAP minimal edge contrast</i>:</b></dt>
<dd><p>

Grade of the <code>COMPOSITE RAP</code> sub group, corresponds to the
one for simple 1D bar codes as described above.
</p></dd>

<dt><b>16 - <i>RAP modulation</i>:</b></dt>
<dd><p>

Grade of the <code>COMPOSITE RAP</code> sub group, corresponds to the
one for simple 1D bar codes as described above.
</p></dd>

<dt><b>17 - <i>RAP defects</i>:</b></dt>
<dd><p>

Grade of the <code>COMPOSITE RAP</code> sub group, corresponds to the
one for simple 1D bar codes as described above.
</p></dd>

<dt><b>18 - <i>RAP decodability</i>:</b></dt>
<dd><p>

Grade of the <code>COMPOSITE RAP</code> sub group, corresponds to the
one for simple 1D bar codes as described above.
</p></dd>

<dt><b>19 - <i>codeword yield</i>:</b></dt>
<dd><p>

Counts and evaluates the relative number
of correct decoded words acquired by the set of scan profiles.
</p></dd>

<dt><b>20 - <i>unused error correction</i>:</b></dt>
<dd><p>

Counts and evaluates the relative number
of false decoded words within the error correction blocks.
</p></dd>

<dt><b>21 - <i>modulation</i>:</b></dt>
<dd><p>

Grades the ratio of the minimum edge contrast to the symbol
contrast.
indicates how strong the amplitudes, i.e.,
the extremal intensities, of the bars and spaces are.
</p></dd>

<dt><b>22 - <i>decodability</i>:</b></dt>
<dd><p>

Grades the uniformity of reflectance of the dark and light
modules, respectively.
</p></dd>

<dt><b>23 - <i>defects</i>:</b></dt>
<dd><p>

Refers to a measurement of how perfect the reflectance profiles
of bars and spaces are.
</p></dd>
</dl>
</li>
</ul>

</dd>
</dl>

</dd>

<dt><b><i><span data-if="hdevelop" style="display:inline">'quality_isoiec15416_float_grades'</span><span data-if="c" style="display:none">"quality_isoiec15416_float_grades"</span><span data-if="cpp" style="display:none">"quality_isoiec15416_float_grades"</span><span data-if="com" style="display:none">"quality_isoiec15416_float_grades"</span><span data-if="dotnet" style="display:none">"quality_isoiec15416_float_grades"</span><span data-if="python" style="display:none">"quality_isoiec15416_float_grades"</span></i>:</b></dt>
<dd>
<p>

returns a tuple with the same assessment of print quality like
<i><span data-if="hdevelop" style="display:inline">'quality_isoiec15416'</span><span data-if="c" style="display:none">"quality_isoiec15416"</span><span data-if="cpp" style="display:none">"quality_isoiec15416"</span><span data-if="com" style="display:none">"quality_isoiec15416"</span><span data-if="dotnet" style="display:none">"quality_isoiec15416"</span><span data-if="python" style="display:none">"quality_isoiec15416"</span></i>.
In compliance with the international standard ISO/IEC 15416:2016 the
grades are returned with one decimal place.
The names of the grades can be queried by setting <a href="#ResultName"><i><code><span data-if="hdevelop" style="display:inline">ResultName</span><span data-if="c" style="display:none">ResultName</span><span data-if="cpp" style="display:none">ResultName</span><span data-if="com" style="display:none">ResultName</span><span data-if="dotnet" style="display:none">resultName</span><span data-if="python" style="display:none">result_name</span></code></i></a>
to <i><span data-if="hdevelop" style="display:inline">'quality_isoiec15416_labels'</span><span data-if="c" style="display:none">"quality_isoiec15416_labels"</span><span data-if="cpp" style="display:none">"quality_isoiec15416_labels"</span><span data-if="com" style="display:none">"quality_isoiec15416_labels"</span><span data-if="dotnet" style="display:none">"quality_isoiec15416_labels"</span><span data-if="python" style="display:none">"quality_isoiec15416_labels"</span></i>, see below.
</p>
<p>Note that the print quality of a bar code can only be evaluated
if the bar code was decoded by <a href="find_bar_code.html"><code><span data-if="hdevelop" style="display:inline">find_bar_code</span><span data-if="c" style="display:none">find_bar_code</span><span data-if="cpp" style="display:none">FindBarCode</span><span data-if="com" style="display:none">FindBarCode</span><span data-if="dotnet" style="display:none">FindBarCode</span><span data-if="python" style="display:none">find_bar_code</span></code></a> in
<i><span data-if="hdevelop" style="display:inline">'persistence'</span><span data-if="c" style="display:none">"persistence"</span><span data-if="cpp" style="display:none">"persistence"</span><span data-if="com" style="display:none">"persistence"</span><span data-if="dotnet" style="display:none">"persistence"</span><span data-if="python" style="display:none">"persistence"</span></i> mode (see <a href="set_bar_code_param.html"><code><span data-if="hdevelop" style="display:inline">set_bar_code_param</span><span data-if="c" style="display:none">set_bar_code_param</span><span data-if="cpp" style="display:none">SetBarCodeParam</span><span data-if="com" style="display:none">SetBarCodeParam</span><span data-if="dotnet" style="display:none">SetBarCodeParam</span><span data-if="python" style="display:none">set_bar_code_param</span></code></a> for
further details).
</p>
</dd>

<dt><b><i><span data-if="hdevelop" style="display:inline">'quality_isoiec15416_values'</span><span data-if="c" style="display:none">"quality_isoiec15416_values"</span><span data-if="cpp" style="display:none">"quality_isoiec15416_values"</span><span data-if="com" style="display:none">"quality_isoiec15416_values"</span><span data-if="dotnet" style="display:none">"quality_isoiec15416_values"</span><span data-if="python" style="display:none">"quality_isoiec15416_values"</span></i>:</b></dt>
<dd>
<p>

returns a tuple with the raw values for all <i>'directly
  measurable'</i> grades (returned with <code><span data-if="hdevelop" style="display:inline">ResultName</span><span data-if="c" style="display:none">ResultName</span><span data-if="cpp" style="display:none">ResultName</span><span data-if="com" style="display:none">ResultName</span><span data-if="dotnet" style="display:none">resultName</span><span data-if="python" style="display:none">result_name</span></code> to
<i><span data-if="hdevelop" style="display:inline">'quality_isoiec15416'</span><span data-if="c" style="display:none">"quality_isoiec15416"</span><span data-if="cpp" style="display:none">"quality_isoiec15416"</span><span data-if="com" style="display:none">"quality_isoiec15416"</span><span data-if="dotnet" style="display:none">"quality_isoiec15416"</span><span data-if="python" style="display:none">"quality_isoiec15416"</span></i>).
These are the grades, whose definition in the ISO/IEC 15416:2016
standard is a <i>'direct derivative'</i> of the reflectance
(i.e., the gray values) properties of the symbol or grades that are
the result of a <i>'direct counting'</i>.
Additionally the three overall grades <i>overall quality</i>,
<i>overall linear</i>, and <i>overall composite</i> are returned
(see their explanation above in <i><span data-if="hdevelop" style="display:inline">'quality_isoiec15416'</span><span data-if="c" style="display:none">"quality_isoiec15416"</span><span data-if="cpp" style="display:none">"quality_isoiec15416"</span><span data-if="com" style="display:none">"quality_isoiec15416"</span><span data-if="dotnet" style="display:none">"quality_isoiec15416"</span><span data-if="python" style="display:none">"quality_isoiec15416"</span></i>).
Note that the print quality of a bar code can only be evaluated
if the bar code was decoded by <a href="find_bar_code.html"><code><span data-if="hdevelop" style="display:inline">find_bar_code</span><span data-if="c" style="display:none">find_bar_code</span><span data-if="cpp" style="display:none">FindBarCode</span><span data-if="com" style="display:none">FindBarCode</span><span data-if="dotnet" style="display:none">FindBarCode</span><span data-if="python" style="display:none">find_bar_code</span></code></a> in
<i><span data-if="hdevelop" style="display:inline">'persistence'</span><span data-if="c" style="display:none">"persistence"</span><span data-if="cpp" style="display:none">"persistence"</span><span data-if="com" style="display:none">"persistence"</span><span data-if="dotnet" style="display:none">"persistence"</span><span data-if="python" style="display:none">"persistence"</span></i> mode (see <a href="set_bar_code_param.html"><code><span data-if="hdevelop" style="display:inline">set_bar_code_param</span><span data-if="c" style="display:none">set_bar_code_param</span><span data-if="cpp" style="display:none">SetBarCodeParam</span><span data-if="com" style="display:none">SetBarCodeParam</span><span data-if="dotnet" style="display:none">SetBarCodeParam</span><span data-if="python" style="display:none">set_bar_code_param</span></code></a> for
further details).
</p>
<p>The names of the tuple elements can be queried by setting
<a href="#ResultName"><i><code><span data-if="hdevelop" style="display:inline">ResultName</span><span data-if="c" style="display:none">ResultName</span><span data-if="cpp" style="display:none">ResultName</span><span data-if="com" style="display:none">ResultName</span><span data-if="dotnet" style="display:none">resultName</span><span data-if="python" style="display:none">result_name</span></code></i></a> to <i><span data-if="hdevelop" style="display:inline">'quality_isoiec15416_labels'</span><span data-if="c" style="display:none">"quality_isoiec15416_labels"</span><span data-if="cpp" style="display:none">"quality_isoiec15416_labels"</span><span data-if="com" style="display:none">"quality_isoiec15416_labels"</span><span data-if="dotnet" style="display:none">"quality_isoiec15416_labels"</span><span data-if="python" style="display:none">"quality_isoiec15416_labels"</span></i>, see below.
</p>
<p>All values (not grades) are normalized between <i>0.0</i> and
<i>1.0</i>.
Hence, for example, a <i>symbol contrast</i> value of
<i>0.75</i> will correspond to a gray value of <i>191.25</i>
(for byte images).
</p>
<p>Which values make up the tuple depends on whether the bar code
is a simple 1D or a composite bar code:
</p>
<dl class="generic">

<dt><b><b>simple 1D bar codes</b>:</b></dt>
<dd>
<p>

The following values are returned by the respective index:
</p>
<dl class="generic">

<dt><b>0 - <i>overall quality</i></b></dt>
<dd>

</dd>

<dt><b>2 - <i>symbol contrast</i></b></dt>
<dd>

</dd>

<dt><b>3 - <i>minimal reflectance</i></b></dt>
<dd>

</dd>

<dt><b>4 - <i>minimal edge contrast</i></b></dt>
<dd>

</dd>

<dt><b>5 - <i>modulation</i></b></dt>
<dd>

</dd>

<dt><b>6 - <i>defects</i></b></dt>
<dd>

</dd>

<dt><b>7 - <i>decodability</i></b></dt>
<dd>

</dd>
</dl>

</dd>

<dt><b><b>composite bar codes</b>:</b></dt>
<dd>
<p>

The following values are returned by the respective index:
</p>
<dl class="generic">

<dt><b>0 - <i>overall quality</i></b></dt>
<dd>

</dd>

<dt><b>1 - <i>overall linear</i></b></dt>
<dd>

</dd>

<dt><b>2 - <i>overall composite</i></b></dt>
<dd>

</dd>

<dt><b>4 - <i>symbol contrast</i></b></dt>
<dd>

</dd>

<dt><b>5 - <i>minimal reflectance</i></b></dt>
<dd>

</dd>

<dt><b>6 - <i>minimal edge contrast</i></b></dt>
<dd>

</dd>

<dt><b>7 - <i>modulation</i></b></dt>
<dd>

</dd>

<dt><b>8 - <i>defects</i></b></dt>
<dd>

</dd>

<dt><b>9 - <i>decodability</i></b></dt>
<dd>

</dd>

<dt><b>13 - <i>RAP contrast</i></b></dt>
<dd>

</dd>

<dt><b>14 - <i>RAP minimal reflectance</i></b></dt>
<dd>

</dd>

<dt><b>15 - <i>RAP minimal edge contrast</i></b></dt>
<dd>

</dd>

<dt><b>16 - <i>RAP modulation</i></b></dt>
<dd>

</dd>

<dt><b>17 - <i>RAP defects</i></b></dt>
<dd>

</dd>

<dt><b>18 - <i>RAP decodability</i></b></dt>
<dd>

</dd>

<dt><b>19 - <i>codeword yield</i></b></dt>
<dd>

</dd>

<dt><b>20 - <i>unused error correction</i></b></dt>
<dd>

</dd>
</dl>

</dd>
</dl>

<p>These tuples have the same length as the tuple with the grades
returned when setting <code><span data-if="hdevelop" style="display:inline">ResultName</span><span data-if="c" style="display:none">ResultName</span><span data-if="cpp" style="display:none">ResultName</span><span data-if="com" style="display:none">ResultName</span><span data-if="dotnet" style="display:none">resultName</span><span data-if="python" style="display:none">result_name</span></code> to
<i><span data-if="hdevelop" style="display:inline">'quality_isoiec15416'</span><span data-if="c" style="display:none">"quality_isoiec15416"</span><span data-if="cpp" style="display:none">"quality_isoiec15416"</span><span data-if="com" style="display:none">"quality_isoiec15416"</span><span data-if="dotnet" style="display:none">"quality_isoiec15416"</span><span data-if="python" style="display:none">"quality_isoiec15416"</span></i> and
<i><span data-if="hdevelop" style="display:inline">'quality_isoiec15416_float_grades'</span><span data-if="c" style="display:none">"quality_isoiec15416_float_grades"</span><span data-if="cpp" style="display:none">"quality_isoiec15416_float_grades"</span><span data-if="com" style="display:none">"quality_isoiec15416_float_grades"</span><span data-if="dotnet" style="display:none">"quality_isoiec15416_float_grades"</span><span data-if="python" style="display:none">"quality_isoiec15416_float_grades"</span></i>, respectively.
For the entries not listed above, 该算子 reports <i><span data-if="hdevelop" style="display:inline">'N/A'</span><span data-if="c" style="display:none">"N/A"</span><span data-if="cpp" style="display:none">"N/A"</span><span data-if="com" style="display:none">"N/A"</span><span data-if="dotnet" style="display:none">"N/A"</span><span data-if="python" style="display:none">"N/A"</span></i>.
In case of simple 1D bar codes, the grades <i>decode</i> and
<i>additional requirements</i> do not have any interpretation in the
reflectance profile and as a consequence the value <i><span data-if="hdevelop" style="display:inline">'N/A'</span><span data-if="c" style="display:none">"N/A"</span><span data-if="cpp" style="display:none">"N/A"</span><span data-if="com" style="display:none">"N/A"</span><span data-if="dotnet" style="display:none">"N/A"</span><span data-if="python" style="display:none">"N/A"</span></i>
is returned.
For composite bar codes this is the case for the grades
<i>decode</i> (<code>LINEAR</code>),
<i>additional requirements</i> (<code>LINEAR</code>),
<i>decode</i> (<code>COMPOSITE</code>), and
<i>RAP overall</i> (<code>COMPOSITE</code>).
Note that although the grades <i>modulation</i>
(<code>COMPOSITE</code>), <i>decodability</i> (<code>COMPOSITE</code>),
and <i>defects</i> (<code>COMPOSITE</code>) are grading the gray value
reflectance profile of a composite symbol,
<i><span data-if="hdevelop" style="display:inline">'N/A'</span><span data-if="c" style="display:none">"N/A"</span><span data-if="cpp" style="display:none">"N/A"</span><span data-if="com" style="display:none">"N/A"</span><span data-if="dotnet" style="display:none">"N/A"</span><span data-if="python" style="display:none">"N/A"</span></i> is reported for them as well.
This is because they are computed in a complicated scheme involving
the symbology decoding routine and the error correction mechanism.
As a consequence they do not have a direct raw measurement
interpretation.
</p>
<p>If a grade is not defined for the bar code type of the decoded symbol,
<i><span data-if="hdevelop" style="display:inline">'N/A'</span><span data-if="c" style="display:none">"N/A"</span><span data-if="cpp" style="display:none">"N/A"</span><span data-if="com" style="display:none">"N/A"</span><span data-if="dotnet" style="display:none">"N/A"</span><span data-if="python" style="display:none">"N/A"</span></i> is returned as its value. In this case, the value of the
overall symbol grade is also <i><span data-if="hdevelop" style="display:inline">'N/A'</span><span data-if="c" style="display:none">"N/A"</span><span data-if="cpp" style="display:none">"N/A"</span><span data-if="com" style="display:none">"N/A"</span><span data-if="dotnet" style="display:none">"N/A"</span><span data-if="python" style="display:none">"N/A"</span></i>.
</p>
</dd>

<dt><b><i><span data-if="hdevelop" style="display:inline">'quality_isoiec15416_labels'</span><span data-if="c" style="display:none">"quality_isoiec15416_labels"</span><span data-if="cpp" style="display:none">"quality_isoiec15416_labels"</span><span data-if="com" style="display:none">"quality_isoiec15416_labels"</span><span data-if="dotnet" style="display:none">"quality_isoiec15416_labels"</span><span data-if="python" style="display:none">"quality_isoiec15416_labels"</span></i>:</b></dt>
<dd>
<p>

returns convenience grade labels of the elements of the tuple returned
when calling <code><span data-if="hdevelop" style="display:inline">get_bar_code_result</span><span data-if="c" style="display:none">get_bar_code_result</span><span data-if="cpp" style="display:none">GetBarCodeResult</span><span data-if="com" style="display:none">GetBarCodeResult</span><span data-if="dotnet" style="display:none">GetBarCodeResult</span><span data-if="python" style="display:none">get_bar_code_result</span></code> with
<i><span data-if="hdevelop" style="display:inline">'quality_isoiec15416'</span><span data-if="c" style="display:none">"quality_isoiec15416"</span><span data-if="cpp" style="display:none">"quality_isoiec15416"</span><span data-if="com" style="display:none">"quality_isoiec15416"</span><span data-if="dotnet" style="display:none">"quality_isoiec15416"</span><span data-if="python" style="display:none">"quality_isoiec15416"</span></i>. Note, that in order to be able to
discriminate the composite from the linear grading case, 该算子
needs a handle of a valid result to be passed in
<a href="#CandidateHandle"><i><code><span data-if="hdevelop" style="display:inline">CandidateHandle</span><span data-if="c" style="display:none">CandidateHandle</span><span data-if="cpp" style="display:none">CandidateHandle</span><span data-if="com" style="display:none">CandidateHandle</span><span data-if="dotnet" style="display:none">candidateHandle</span><span data-if="python" style="display:none">candidate_handle</span></code></i></a>.
</p>
</dd>

<dt><b><i><span data-if="hdevelop" style="display:inline">'gs1_lint_passed'</span><span data-if="c" style="display:none">"gs1_lint_passed"</span><span data-if="cpp" style="display:none">"gs1_lint_passed"</span><span data-if="com" style="display:none">"gs1_lint_passed"</span><span data-if="dotnet" style="display:none">"gs1_lint_passed"</span><span data-if="python" style="display:none">"gs1_lint_passed"</span></i>:</b></dt>
<dd>
<p>

If the symbol contains a GS1 formatted string, additional
linting can be performed on the contained string.
<i><span data-if="hdevelop" style="display:inline">'gs1_lint_passed'</span><span data-if="c" style="display:none">"gs1_lint_passed"</span><span data-if="cpp" style="display:none">"gs1_lint_passed"</span><span data-if="com" style="display:none">"gs1_lint_passed"</span><span data-if="dotnet" style="display:none">"gs1_lint_passed"</span><span data-if="python" style="display:none">"gs1_lint_passed"</span></i> will return <i><span data-if="hdevelop" style="display:inline">'true'</span><span data-if="c" style="display:none">"true"</span><span data-if="cpp" style="display:none">"true"</span><span data-if="com" style="display:none">"true"</span><span data-if="dotnet" style="display:none">"true"</span><span data-if="python" style="display:none">"true"</span></i>,
if this is successful. Otherwise, <i><span data-if="hdevelop" style="display:inline">'false'</span><span data-if="c" style="display:none">"false"</span><span data-if="cpp" style="display:none">"false"</span><span data-if="com" style="display:none">"false"</span><span data-if="dotnet" style="display:none">"false"</span><span data-if="python" style="display:none">"false"</span></i> is returned.
Linting checks that
</p>
<ul>
<li>
<p> one AI (Application Identifier) does not occur multiple times with
different contents,
</p>
</li>
<li>
<p> AIs required by other AIs are contained,
</p>
</li>
<li>
<p> AIs excluded by other AIs are not included, and that
</p>
</li>
<li>
<p> specific formatting rules for AIs are respected.
</p>
</li>
</ul>

</dd>

<dt><b><i><span data-if="hdevelop" style="display:inline">'gs1_lint_result'</span><span data-if="c" style="display:none">"gs1_lint_result"</span><span data-if="cpp" style="display:none">"gs1_lint_result"</span><span data-if="com" style="display:none">"gs1_lint_result"</span><span data-if="dotnet" style="display:none">"gs1_lint_result"</span><span data-if="python" style="display:none">"gs1_lint_result"</span></i>:</b></dt>
<dd>
<p>

<i><span data-if="hdevelop" style="display:inline">'gs1_lint_result'</span><span data-if="c" style="display:none">"gs1_lint_result"</span><span data-if="cpp" style="display:none">"gs1_lint_result"</span><span data-if="com" style="display:none">"gs1_lint_result"</span><span data-if="dotnet" style="display:none">"gs1_lint_result"</span><span data-if="python" style="display:none">"gs1_lint_result"</span></i> performs the linting tests documented in
<i><span data-if="hdevelop" style="display:inline">'gs1_lint_passed'</span><span data-if="c" style="display:none">"gs1_lint_passed"</span><span data-if="cpp" style="display:none">"gs1_lint_passed"</span><span data-if="com" style="display:none">"gs1_lint_passed"</span><span data-if="dotnet" style="display:none">"gs1_lint_passed"</span><span data-if="python" style="display:none">"gs1_lint_passed"</span></i>. If the linting fails,
a list of human-readable error messages is returned, if it is successful,
<i><span data-if="hdevelop" style="display:inline">'ok'</span><span data-if="c" style="display:none">"ok"</span><span data-if="cpp" style="display:none">"ok"</span><span data-if="com" style="display:none">"ok"</span><span data-if="dotnet" style="display:none">"ok"</span><span data-if="python" style="display:none">"ok"</span></i> is returned.
</p>
</dd>

<dt><b><i><span data-if="hdevelop" style="display:inline">'status'</span><span data-if="c" style="display:none">"status"</span><span data-if="cpp" style="display:none">"status"</span><span data-if="com" style="display:none">"status"</span><span data-if="dotnet" style="display:none">"status"</span><span data-if="python" style="display:none">"status"</span></i>:</b></dt>
<dd>
<p>

determines and returns additional information about scanlines of a
given candidate region in a human-readable format.
Note in order to evaluate the status of the bar code scanlines
the preceding call of 该算子 <a href="find_bar_code.html"><code><span data-if="hdevelop" style="display:inline">find_bar_code</span><span data-if="c" style="display:none">find_bar_code</span><span data-if="cpp" style="display:none">FindBarCode</span><span data-if="com" style="display:none">FindBarCode</span><span data-if="dotnet" style="display:none">FindBarCode</span><span data-if="python" style="display:none">find_bar_code</span></code></a> or
<a href="decode_bar_code_rectangle2.html"><code><span data-if="hdevelop" style="display:inline">decode_bar_code_rectangle2</span><span data-if="c" style="display:none">decode_bar_code_rectangle2</span><span data-if="cpp" style="display:none">DecodeBarCodeRectangle2</span><span data-if="com" style="display:none">DecodeBarCodeRectangle2</span><span data-if="dotnet" style="display:none">DecodeBarCodeRectangle2</span><span data-if="python" style="display:none">decode_bar_code_rectangle2</span></code></a> needs to be done in the mode
<i><span data-if="hdevelop" style="display:inline">'persistence'</span><span data-if="c" style="display:none">"persistence"</span><span data-if="cpp" style="display:none">"persistence"</span><span data-if="com" style="display:none">"persistence"</span><span data-if="dotnet" style="display:none">"persistence"</span><span data-if="python" style="display:none">"persistence"</span></i>, see <a href="set_bar_code_param.html"><code><span data-if="hdevelop" style="display:inline">set_bar_code_param</span><span data-if="c" style="display:none">set_bar_code_param</span><span data-if="cpp" style="display:none">SetBarCodeParam</span><span data-if="com" style="display:none">SetBarCodeParam</span><span data-if="dotnet" style="display:none">SetBarCodeParam</span><span data-if="python" style="display:none">set_bar_code_param</span></code></a>.
</p>
<p>For the calculation of additional information the given candidate region
is scanned again.
In doing so, the bar code reader exits only after evaluation of all
scanlines and not usual after a successful decoding.
This is computationally expensive and should be queried only if additional
information is needed.
For further information on setting scanline parameters, see
<a href="set_bar_code_param.html"><code><span data-if="hdevelop" style="display:inline">set_bar_code_param</span><span data-if="c" style="display:none">set_bar_code_param</span><span data-if="cpp" style="display:none">SetBarCodeParam</span><span data-if="com" style="display:none">SetBarCodeParam</span><span data-if="dotnet" style="display:none">SetBarCodeParam</span><span data-if="python" style="display:none">set_bar_code_param</span></code></a>.
</p>
<p>该算子 returns for every scanline of the candidate region
a status message and possible warning message, which will be added to the
string containing the status message.
These messages are sorted in the same order as the scanlines themselves
are returned by <a href="get_bar_code_object.html"><code><span data-if="hdevelop" style="display:inline">get_bar_code_object</span><span data-if="c" style="display:none">get_bar_code_object</span><span data-if="cpp" style="display:none">GetBarCodeObject</span><span data-if="com" style="display:none">GetBarCodeObject</span><span data-if="dotnet" style="display:none">GetBarCodeObject</span><span data-if="python" style="display:none">get_bar_code_object</span></code></a> with the parameter
<i><span data-if="hdevelop" style="display:inline">'scanlines_all'</span><span data-if="c" style="display:none">"scanlines_all"</span><span data-if="cpp" style="display:none">"scanlines_all"</span><span data-if="com" style="display:none">"scanlines_all"</span><span data-if="dotnet" style="display:none">"scanlines_all"</span><span data-if="python" style="display:none">"scanlines_all"</span></i>.
The possible messages of these categories are listed below.
</p>
<ul>
<li>
<p> Status messages:
</p>
<p>The following list shows the possible messages grouped
into stages in which the message can appear.
The numbers are the corresponding status codes returned by
<i><span data-if="hdevelop" style="display:inline">'status_id'</span><span data-if="c" style="display:none">"status_id"</span><span data-if="cpp" style="display:none">"status_id"</span><span data-if="com" style="display:none">"status_id"</span><span data-if="dotnet" style="display:none">"status_id"</span><span data-if="python" style="display:none">"status_id"</span></i> (see below).
</p>
<dl class="generic">

<dt><b>0 - <i><span data-if="hdevelop" style="display:inline">'unknown status.'</span><span data-if="c" style="display:none">"unknown status."</span><span data-if="cpp" style="display:none">"unknown status."</span><span data-if="com" style="display:none">"unknown status."</span><span data-if="dotnet" style="display:none">"unknown status."</span><span data-if="python" style="display:none">"unknown status."</span></i></b></dt>
<dd><p>

The status of this scanline is unknown. The scanline will be ignored.
</p></dd>

<dt><b>1 - <i><span data-if="hdevelop" style="display:inline">'success.'</span><span data-if="c" style="display:none">"success."</span><span data-if="cpp" style="display:none">"success."</span><span data-if="com" style="display:none">"success."</span><span data-if="dotnet" style="display:none">"success."</span><span data-if="python" style="display:none">"success."</span></i></b></dt>
<dd><p>

The scanline could be decoded successfully.
</p></dd>

<dt><b>2 - <i><span data-if="hdevelop" style="display:inline">'edges: not enough edges detected.'</span><span data-if="c" style="display:none">"edges: not enough edges detected."</span><span data-if="cpp" style="display:none">"edges: not enough edges detected."</span><span data-if="com" style="display:none">"edges: not enough edges detected."</span><span data-if="dotnet" style="display:none">"edges: not enough edges detected."</span><span data-if="python" style="display:none">"edges: not enough edges detected."</span></i></b></dt>
<dd><p>

The number of edges in this scanline is too low for this bar code
type.
</p></dd>

<dt><b>3 - <i><span data-if="hdevelop" style="display:inline">'edges: not enough edges for a start, a stop and
      at least one data character.'</span><span data-if="c" style="display:none">"edges: not enough edges for a start, a stop and
      at least one data character."</span><span data-if="cpp" style="display:none">"edges: not enough edges for a start, a stop and
      at least one data character."</span><span data-if="com" style="display:none">"edges: not enough edges for a start, a stop and
      at least one data character."</span><span data-if="dotnet" style="display:none">"edges: not enough edges for a start, a stop and
      at least one data character."</span><span data-if="python" style="display:none">"edges: not enough edges for a start, a stop and
      at least one data character."</span></i></b></dt>
<dd><p>

The number of edges in this scanline is too low to find at
least the start pattern, the stop pattern and a data character.
</p></dd>

<dt><b>4 - <i><span data-if="hdevelop" style="display:inline">'edges: too many edges detected.'</span><span data-if="c" style="display:none">"edges: too many edges detected."</span><span data-if="cpp" style="display:none">"edges: too many edges detected."</span><span data-if="com" style="display:none">"edges: too many edges detected."</span><span data-if="dotnet" style="display:none">"edges: too many edges detected."</span><span data-if="python" style="display:none">"edges: too many edges detected."</span></i></b></dt>
<dd><p>

The number of edges in this scanline is too high for this bar
code type.
</p></dd>

<dt><b>5 - <i><span data-if="hdevelop" style="display:inline">'edges: center of scanline not within image domain.'</span><span data-if="c" style="display:none">"edges: center of scanline not within image domain."</span><span data-if="cpp" style="display:none">"edges: center of scanline not within image domain."</span><span data-if="com" style="display:none">"edges: center of scanline not within image domain."</span><span data-if="dotnet" style="display:none">"edges: center of scanline not within image domain."</span><span data-if="python" style="display:none">"edges: center of scanline not within image domain."</span></i></b></dt>
<dd>

</dd>

<dt><b>6 - <i><span data-if="hdevelop" style="display:inline">'decoding: could not find stop character.'</span><span data-if="c" style="display:none">"decoding: could not find stop character."</span><span data-if="cpp" style="display:none">"decoding: could not find stop character."</span><span data-if="com" style="display:none">"decoding: could not find stop character."</span><span data-if="dotnet" style="display:none">"decoding: could not find stop character."</span><span data-if="python" style="display:none">"decoding: could not find stop character."</span></i></b></dt>
<dd><p>

The symbology specific stop character could not be found.
</p></dd>

<dt><b>7 - <i><span data-if="hdevelop" style="display:inline">'decoding: could not find start and stop characters.'</span><span data-if="c" style="display:none">"decoding: could not find start and stop characters."</span><span data-if="cpp" style="display:none">"decoding: could not find start and stop characters."</span><span data-if="com" style="display:none">"decoding: could not find start and stop characters."</span><span data-if="dotnet" style="display:none">"decoding: could not find start and stop characters."</span><span data-if="python" style="display:none">"decoding: could not find start and stop characters."</span></i></b></dt>
<dd><p>

The symbology specific start and stop characters could not be found.
</p></dd>

<dt><b>8 - <i><span data-if="hdevelop" style="display:inline">'decoding: internal error when estimating the
      maximum string length.'</span><span data-if="c" style="display:none">"decoding: internal error when estimating the
      maximum string length."</span><span data-if="cpp" style="display:none">"decoding: internal error when estimating the
      maximum string length."</span><span data-if="com" style="display:none">"decoding: internal error when estimating the
      maximum string length."</span><span data-if="dotnet" style="display:none">"decoding: internal error when estimating the
      maximum string length."</span><span data-if="python" style="display:none">"decoding: internal error when estimating the
      maximum string length."</span></i></b></dt>
<dd><p>

Internal error.
</p></dd>

<dt><b>9 - <i><span data-if="hdevelop" style="display:inline">'decoding: internal error when decoding a single
      character.'</span><span data-if="c" style="display:none">"decoding: internal error when decoding a single
      character."</span><span data-if="cpp" style="display:none">"decoding: internal error when decoding a single
      character."</span><span data-if="com" style="display:none">"decoding: internal error when decoding a single
      character."</span><span data-if="dotnet" style="display:none">"decoding: internal error when decoding a single
      character."</span><span data-if="python" style="display:none">"decoding: internal error when decoding a single
      character."</span></i></b></dt>
<dd><p>

Internal error.
</p></dd>

<dt><b>10 - <i><span data-if="hdevelop" style="display:inline">'decoding: number of wide bars of a single
      character is not equal to 2.'</span><span data-if="c" style="display:none">"decoding: number of wide bars of a single
      character is not equal to 2."</span><span data-if="cpp" style="display:none">"decoding: number of wide bars of a single
      character is not equal to 2."</span><span data-if="com" style="display:none">"decoding: number of wide bars of a single
      character is not equal to 2."</span><span data-if="dotnet" style="display:none">"decoding: number of wide bars of a single
      character is not equal to 2."</span><span data-if="python" style="display:none">"decoding: number of wide bars of a single
      character is not equal to 2."</span></i></b></dt>
<dd><p>

For bar code types <i><span data-if="hdevelop" style="display:inline">'2/5 Industrial'</span><span data-if="c" style="display:none">"2/5 Industrial"</span><span data-if="cpp" style="display:none">"2/5 Industrial"</span><span data-if="com" style="display:none">"2/5 Industrial"</span><span data-if="dotnet" style="display:none">"2/5 Industrial"</span><span data-if="python" style="display:none">"2/5 Industrial"</span></i> and
<i><span data-if="hdevelop" style="display:inline">'2/5 Interleaved'</span><span data-if="c" style="display:none">"2/5 Interleaved"</span><span data-if="cpp" style="display:none">"2/5 Interleaved"</span><span data-if="com" style="display:none">"2/5 Interleaved"</span><span data-if="dotnet" style="display:none">"2/5 Interleaved"</span><span data-if="python" style="display:none">"2/5 Interleaved"</span></i>, the number of wide bars in a single
character must be two.
</p></dd>

<dt><b>11 - <i><span data-if="hdevelop" style="display:inline">'decoding: invalid encoding pattern.'</span><span data-if="c" style="display:none">"decoding: invalid encoding pattern."</span><span data-if="cpp" style="display:none">"decoding: invalid encoding pattern."</span><span data-if="com" style="display:none">"decoding: invalid encoding pattern."</span><span data-if="dotnet" style="display:none">"decoding: invalid encoding pattern."</span><span data-if="python" style="display:none">"decoding: invalid encoding pattern."</span></i></b></dt>
<dd><p>

The encoding pattern does not correspond to a character in the
symbology specific decoding table.
</p></dd>

<dt><b>12 - <i><span data-if="hdevelop" style="display:inline">'decoding: invalid mix of character sets.'</span><span data-if="c" style="display:none">"decoding: invalid mix of character sets."</span><span data-if="cpp" style="display:none">"decoding: invalid mix of character sets."</span><span data-if="com" style="display:none">"decoding: invalid mix of character sets."</span><span data-if="dotnet" style="display:none">"decoding: invalid mix of character sets."</span><span data-if="python" style="display:none">"decoding: invalid mix of character sets."</span></i></b></dt>
<dd><p>

For bar code types <i><span data-if="hdevelop" style="display:inline">'EAN-13'</span><span data-if="c" style="display:none">"EAN-13"</span><span data-if="cpp" style="display:none">"EAN-13"</span><span data-if="com" style="display:none">"EAN-13"</span><span data-if="dotnet" style="display:none">"EAN-13"</span><span data-if="python" style="display:none">"EAN-13"</span></i> and <i><span data-if="hdevelop" style="display:inline">'UPC-A'</span><span data-if="c" style="display:none">"UPC-A"</span><span data-if="cpp" style="display:none">"UPC-A"</span><span data-if="com" style="display:none">"UPC-A"</span><span data-if="dotnet" style="display:none">"UPC-A"</span><span data-if="python" style="display:none">"UPC-A"</span></i>, the left
half of the symbol contains an invalid mix of the number sets A and B.
</p></dd>

<dt><b>13 - <i><span data-if="hdevelop" style="display:inline">'decoding: error decoding the reference to a human
      readable string.'</span><span data-if="c" style="display:none">"decoding: error decoding the reference to a human
      readable string."</span><span data-if="cpp" style="display:none">"decoding: error decoding the reference to a human
      readable string."</span><span data-if="com" style="display:none">"decoding: error decoding the reference to a human
      readable string."</span><span data-if="dotnet" style="display:none">"decoding: error decoding the reference to a human
      readable string."</span><span data-if="python" style="display:none">"decoding: error decoding the reference to a human
      readable string."</span></i></b></dt>
<dd><p>

For example, this could happen if not enough characters
(depending on whether a check character is expected) could be found.
</p></dd>

<dt><b>14 - <i><span data-if="hdevelop" style="display:inline">'decoding: could not detect center guard pattern.'</span><span data-if="c" style="display:none">"decoding: could not detect center guard pattern."</span><span data-if="cpp" style="display:none">"decoding: could not detect center guard pattern."</span><span data-if="com" style="display:none">"decoding: could not detect center guard pattern."</span><span data-if="dotnet" style="display:none">"decoding: could not detect center guard pattern."</span><span data-if="python" style="display:none">"decoding: could not detect center guard pattern."</span></i></b></dt>
<dd><p>

For bar code types <i><span data-if="hdevelop" style="display:inline">'EAN-13'</span><span data-if="c" style="display:none">"EAN-13"</span><span data-if="cpp" style="display:none">"EAN-13"</span><span data-if="com" style="display:none">"EAN-13"</span><span data-if="dotnet" style="display:none">"EAN-13"</span><span data-if="python" style="display:none">"EAN-13"</span></i>, <i><span data-if="hdevelop" style="display:inline">'EAN-8'</span><span data-if="c" style="display:none">"EAN-8"</span><span data-if="cpp" style="display:none">"EAN-8"</span><span data-if="com" style="display:none">"EAN-8"</span><span data-if="dotnet" style="display:none">"EAN-8"</span><span data-if="python" style="display:none">"EAN-8"</span></i>, and
<i><span data-if="hdevelop" style="display:inline">'UPC-A'</span><span data-if="c" style="display:none">"UPC-A"</span><span data-if="cpp" style="display:none">"UPC-A"</span><span data-if="com" style="display:none">"UPC-A"</span><span data-if="dotnet" style="display:none">"UPC-A"</span><span data-if="python" style="display:none">"UPC-A"</span></i> (including add-on variants) the obligatory center
guard pattern could not be found.
</p></dd>

<dt><b>15 - <i><span data-if="hdevelop" style="display:inline">'decoding: could not detect left and/or right
      guard patterns.'</span><span data-if="c" style="display:none">"decoding: could not detect left and/or right
      guard patterns."</span><span data-if="cpp" style="display:none">"decoding: could not detect left and/or right
      guard patterns."</span><span data-if="com" style="display:none">"decoding: could not detect left and/or right
      guard patterns."</span><span data-if="dotnet" style="display:none">"decoding: could not detect left and/or right
      guard patterns."</span><span data-if="python" style="display:none">"decoding: could not detect left and/or right
      guard patterns."</span></i></b></dt>
<dd><p>

For bar code types <i><span data-if="hdevelop" style="display:inline">'EAN-13'</span><span data-if="c" style="display:none">"EAN-13"</span><span data-if="cpp" style="display:none">"EAN-13"</span><span data-if="com" style="display:none">"EAN-13"</span><span data-if="dotnet" style="display:none">"EAN-13"</span><span data-if="python" style="display:none">"EAN-13"</span></i>, <i><span data-if="hdevelop" style="display:inline">'EAN-8'</span><span data-if="c" style="display:none">"EAN-8"</span><span data-if="cpp" style="display:none">"EAN-8"</span><span data-if="com" style="display:none">"EAN-8"</span><span data-if="dotnet" style="display:none">"EAN-8"</span><span data-if="python" style="display:none">"EAN-8"</span></i>, and
<i><span data-if="hdevelop" style="display:inline">'UPC-A'</span><span data-if="c" style="display:none">"UPC-A"</span><span data-if="cpp" style="display:none">"UPC-A"</span><span data-if="com" style="display:none">"UPC-A"</span><span data-if="dotnet" style="display:none">"UPC-A"</span><span data-if="python" style="display:none">"UPC-A"</span></i> (including add-on variants) either the
obligatory left or right normal guard patterns could not be found.
For bar code types <i><span data-if="hdevelop" style="display:inline">'UPC-E'</span><span data-if="c" style="display:none">"UPC-E"</span><span data-if="cpp" style="display:none">"UPC-E"</span><span data-if="com" style="display:none">"UPC-E"</span><span data-if="dotnet" style="display:none">"UPC-E"</span><span data-if="python" style="display:none">"UPC-E"</span></i> (including add-on variants)
either the left normal or right special guard patterns could not
be found.
</p></dd>

<dt><b>16 - <i><span data-if="hdevelop" style="display:inline">'decoding: could not detect add-on guard pattern.'</span><span data-if="c" style="display:none">"decoding: could not detect add-on guard pattern."</span><span data-if="cpp" style="display:none">"decoding: could not detect add-on guard pattern."</span><span data-if="com" style="display:none">"decoding: could not detect add-on guard pattern."</span><span data-if="dotnet" style="display:none">"decoding: could not detect add-on guard pattern."</span><span data-if="python" style="display:none">"decoding: could not detect add-on guard pattern."</span></i></b></dt>
<dd><p>

For bar code types <i><span data-if="hdevelop" style="display:inline">'EAN-13'</span><span data-if="c" style="display:none">"EAN-13"</span><span data-if="cpp" style="display:none">"EAN-13"</span><span data-if="com" style="display:none">"EAN-13"</span><span data-if="dotnet" style="display:none">"EAN-13"</span><span data-if="python" style="display:none">"EAN-13"</span></i>, <i><span data-if="hdevelop" style="display:inline">'EAN-8'</span><span data-if="c" style="display:none">"EAN-8"</span><span data-if="cpp" style="display:none">"EAN-8"</span><span data-if="com" style="display:none">"EAN-8"</span><span data-if="dotnet" style="display:none">"EAN-8"</span><span data-if="python" style="display:none">"EAN-8"</span></i>,
<i><span data-if="hdevelop" style="display:inline">'UPC-A'</span><span data-if="c" style="display:none">"UPC-A"</span><span data-if="cpp" style="display:none">"UPC-A"</span><span data-if="com" style="display:none">"UPC-A"</span><span data-if="dotnet" style="display:none">"UPC-A"</span><span data-if="python" style="display:none">"UPC-A"</span></i>, and <i><span data-if="hdevelop" style="display:inline">'UPC-E'</span><span data-if="c" style="display:none">"UPC-E"</span><span data-if="cpp" style="display:none">"UPC-E"</span><span data-if="com" style="display:none">"UPC-E"</span><span data-if="dotnet" style="display:none">"UPC-E"</span><span data-if="python" style="display:none">"UPC-E"</span></i> containing add-on symbols,
the obligatory add-on guard pattern could not be found.
</p></dd>

<dt><b>17 - <i><span data-if="hdevelop" style="display:inline">'decoding: could not detect enough finder patterns.'</span><span data-if="c" style="display:none">"decoding: could not detect enough finder patterns."</span><span data-if="cpp" style="display:none">"decoding: could not detect enough finder patterns."</span><span data-if="com" style="display:none">"decoding: could not detect enough finder patterns."</span><span data-if="dotnet" style="display:none">"decoding: could not detect enough finder patterns."</span><span data-if="python" style="display:none">"decoding: could not detect enough finder patterns."</span></i></b></dt>
<dd><p>

For bar code types of the GS1 DataBar family, not enough finder
patterns could be found.
</p></dd>

<dt><b>18 - <i><span data-if="hdevelop" style="display:inline">'decoding: no segment found.'</span><span data-if="c" style="display:none">"decoding: no segment found."</span><span data-if="cpp" style="display:none">"decoding: no segment found."</span><span data-if="com" style="display:none">"decoding: no segment found."</span><span data-if="dotnet" style="display:none">"decoding: no segment found."</span><span data-if="python" style="display:none">"decoding: no segment found."</span></i></b></dt>
<dd><p>

For stacked bar code types no segment could be found.
</p></dd>

<dt><b>19 - <i><span data-if="hdevelop" style="display:inline">'check: checksum test failed.'</span><span data-if="c" style="display:none">"check: checksum test failed."</span><span data-if="cpp" style="display:none">"check: checksum test failed."</span><span data-if="com" style="display:none">"check: checksum test failed."</span><span data-if="dotnet" style="display:none">"check: checksum test failed."</span><span data-if="python" style="display:none">"check: checksum test failed."</span></i></b></dt>
<dd><p>

The check character test failed. For bar codes with an optional
check character, it is possible to disable the check character
testing with <i><span data-if="hdevelop" style="display:inline">'check_char'</span><span data-if="c" style="display:none">"check_char"</span><span data-if="cpp" style="display:none">"check_char"</span><span data-if="com" style="display:none">"check_char"</span><span data-if="dotnet" style="display:none">"check_char"</span><span data-if="python" style="display:none">"check_char"</span></i> in <a href="set_bar_code_param.html"><code><span data-if="hdevelop" style="display:inline">set_bar_code_param</span><span data-if="c" style="display:none">set_bar_code_param</span><span data-if="cpp" style="display:none">SetBarCodeParam</span><span data-if="com" style="display:none">SetBarCodeParam</span><span data-if="dotnet" style="display:none">SetBarCodeParam</span><span data-if="python" style="display:none">set_bar_code_param</span></code></a>.
</p></dd>

<dt><b>20 - <i><span data-if="hdevelop" style="display:inline">'check: check of add-on symbol failed.'</span><span data-if="c" style="display:none">"check: check of add-on symbol failed."</span><span data-if="cpp" style="display:none">"check: check of add-on symbol failed."</span><span data-if="com" style="display:none">"check: check of add-on symbol failed."</span><span data-if="dotnet" style="display:none">"check: check of add-on symbol failed."</span><span data-if="python" style="display:none">"check: check of add-on symbol failed."</span></i></b></dt>
<dd><p>

For bar code types <i><span data-if="hdevelop" style="display:inline">'EAN-13'</span><span data-if="c" style="display:none">"EAN-13"</span><span data-if="cpp" style="display:none">"EAN-13"</span><span data-if="com" style="display:none">"EAN-13"</span><span data-if="dotnet" style="display:none">"EAN-13"</span><span data-if="python" style="display:none">"EAN-13"</span></i>, <i><span data-if="hdevelop" style="display:inline">'EAN-8'</span><span data-if="c" style="display:none">"EAN-8"</span><span data-if="cpp" style="display:none">"EAN-8"</span><span data-if="com" style="display:none">"EAN-8"</span><span data-if="dotnet" style="display:none">"EAN-8"</span><span data-if="python" style="display:none">"EAN-8"</span></i>,
<i><span data-if="hdevelop" style="display:inline">'UPC-A'</span><span data-if="c" style="display:none">"UPC-A"</span><span data-if="cpp" style="display:none">"UPC-A"</span><span data-if="com" style="display:none">"UPC-A"</span><span data-if="dotnet" style="display:none">"UPC-A"</span><span data-if="python" style="display:none">"UPC-A"</span></i>, and <i><span data-if="hdevelop" style="display:inline">'UPC-E'</span><span data-if="c" style="display:none">"UPC-E"</span><span data-if="cpp" style="display:none">"UPC-E"</span><span data-if="com" style="display:none">"UPC-E"</span><span data-if="dotnet" style="display:none">"UPC-E"</span><span data-if="python" style="display:none">"UPC-E"</span></i> containing add-on symbols,
the mix of the number sets A and B does not match the implicit
check digit.
</p></dd>

<dt><b>21 - <i><span data-if="hdevelop" style="display:inline">'check: detected EAN-13 bar code type instead of
      specified type.'</span><span data-if="c" style="display:none">"check: detected EAN-13 bar code type instead of
      specified type."</span><span data-if="cpp" style="display:none">"check: detected EAN-13 bar code type instead of
      specified type."</span><span data-if="com" style="display:none">"check: detected EAN-13 bar code type instead of
      specified type."</span><span data-if="dotnet" style="display:none">"check: detected EAN-13 bar code type instead of
      specified type."</span><span data-if="python" style="display:none">"check: detected EAN-13 bar code type instead of
      specified type."</span></i></b></dt>
<dd><p>

For the bar code type <i><span data-if="hdevelop" style="display:inline">'UPC-A'</span><span data-if="c" style="display:none">"UPC-A"</span><span data-if="cpp" style="display:none">"UPC-A"</span><span data-if="com" style="display:none">"UPC-A"</span><span data-if="dotnet" style="display:none">"UPC-A"</span><span data-if="python" style="display:none">"UPC-A"</span></i> and its add-on variants,
the left half of the symbol must consist of six symbol characters
of number set A, but a <i><span data-if="hdevelop" style="display:inline">'EAN-13'</span><span data-if="c" style="display:none">"EAN-13"</span><span data-if="cpp" style="display:none">"EAN-13"</span><span data-if="com" style="display:none">"EAN-13"</span><span data-if="dotnet" style="display:none">"EAN-13"</span><span data-if="python" style="display:none">"EAN-13"</span></i> compatible mix of number
sets A and B has been found instead. Try decoding the bar code
as <i><span data-if="hdevelop" style="display:inline">'EAN-13'</span><span data-if="c" style="display:none">"EAN-13"</span><span data-if="cpp" style="display:none">"EAN-13"</span><span data-if="com" style="display:none">"EAN-13"</span><span data-if="dotnet" style="display:none">"EAN-13"</span><span data-if="python" style="display:none">"EAN-13"</span></i>.
</p></dd>

<dt><b>22 - <i><span data-if="hdevelop" style="display:inline">'check: symbol region overlaps with another symbol
      region'</span><span data-if="c" style="display:none">"check: symbol region overlaps with another symbol
      region"</span><span data-if="cpp" style="display:none">"check: symbol region overlaps with another symbol
      region"</span><span data-if="com" style="display:none">"check: symbol region overlaps with another symbol
      region"</span><span data-if="dotnet" style="display:none">"check: symbol region overlaps with another symbol
      region"</span><span data-if="python" style="display:none">"check: symbol region overlaps with another symbol
      region"</span></i></b></dt>
<dd><p>

The bar code could be decoded, but its symbol region intersects
with the symbol region of another successfully decoded symbol.
</p></dd>

<dt><b>23 - <i><span data-if="hdevelop" style="display:inline">'decoding: could not detect the bar code type.'</span><span data-if="c" style="display:none">"decoding: could not detect the bar code type."</span><span data-if="cpp" style="display:none">"decoding: could not detect the bar code type."</span><span data-if="com" style="display:none">"decoding: could not detect the bar code type."</span><span data-if="dotnet" style="display:none">"decoding: could not detect the bar code type."</span><span data-if="python" style="display:none">"decoding: could not detect the bar code type."</span></i></b></dt>
<dd><p>

While scanning a candidate region in autodiscrimination mode
(see <a href="find_bar_code.html"><code><span data-if="hdevelop" style="display:inline">find_bar_code</span><span data-if="c" style="display:none">find_bar_code</span><span data-if="cpp" style="display:none">FindBarCode</span><span data-if="com" style="display:none">FindBarCode</span><span data-if="dotnet" style="display:none">FindBarCode</span><span data-if="python" style="display:none">find_bar_code</span></code></a> with <code><span data-if="hdevelop" style="display:inline">CodeType</span><span data-if="c" style="display:none">CodeType</span><span data-if="cpp" style="display:none">CodeType</span><span data-if="com" style="display:none">CodeType</span><span data-if="dotnet" style="display:none">codeType</span><span data-if="python" style="display:none">code_type</span></code>=<i><span data-if="hdevelop" style="display:inline">'auto'</span><span data-if="c" style="display:none">"auto"</span><span data-if="cpp" style="display:none">"auto"</span><span data-if="com" style="display:none">"auto"</span><span data-if="dotnet" style="display:none">"auto"</span><span data-if="python" style="display:none">"auto"</span></i>),
the decoder was unable to detect which bar code type the symbol
belongs to.
</p></dd>

<dt><b>24 - <i><span data-if="hdevelop" style="display:inline">'decoding: quiet zone is disturbed.'</span><span data-if="c" style="display:none">"decoding: quiet zone is disturbed."</span><span data-if="cpp" style="display:none">"decoding: quiet zone is disturbed."</span><span data-if="com" style="display:none">"decoding: quiet zone is disturbed."</span><span data-if="dotnet" style="display:none">"decoding: quiet zone is disturbed."</span><span data-if="python" style="display:none">"decoding: quiet zone is disturbed."</span></i></b></dt>
<dd><p>

The quiet zone check was not successful. See the section
<i><span data-if="hdevelop" style="display:inline">'quiet_zone'</span><span data-if="c" style="display:none">"quiet_zone"</span><span data-if="cpp" style="display:none">"quiet_zone"</span><span data-if="com" style="display:none">"quiet_zone"</span><span data-if="dotnet" style="display:none">"quiet_zone"</span><span data-if="python" style="display:none">"quiet_zone"</span></i> in <a href="set_bar_code_param.html"><code><span data-if="hdevelop" style="display:inline">set_bar_code_param</span><span data-if="c" style="display:none">set_bar_code_param</span><span data-if="cpp" style="display:none">SetBarCodeParam</span><span data-if="com" style="display:none">SetBarCodeParam</span><span data-if="dotnet" style="display:none">SetBarCodeParam</span><span data-if="python" style="display:none">set_bar_code_param</span></code></a> for further
information.
</p></dd>

<dt><b>25 - <i><span data-if="hdevelop" style="display:inline">'check: symbol region detected outside of the
      candidate region.'</span><span data-if="c" style="display:none">"check: symbol region detected outside of the
      candidate region."</span><span data-if="cpp" style="display:none">"check: symbol region detected outside of the
      candidate region."</span><span data-if="com" style="display:none">"check: symbol region detected outside of the
      candidate region."</span><span data-if="dotnet" style="display:none">"check: symbol region detected outside of the
      candidate region."</span><span data-if="python" style="display:none">"check: symbol region detected outside of the
      candidate region."</span></i></b></dt>
<dd><p>

A bar code could be decoded, but the resulting symbol region does
not intersect the original candidate region. This is an indication
that random clutter or another candidate was detected by accident
by the scanlines used to scan the original candidate.
</p></dd>

<dt><b>26 - <i><span data-if="hdevelop" style="display:inline">'decoding: minimum code length not reached
      (see min_code_length).'</span><span data-if="c" style="display:none">"decoding: minimum code length not reached
      (see min_code_length)."</span><span data-if="cpp" style="display:none">"decoding: minimum code length not reached
      (see min_code_length)."</span><span data-if="com" style="display:none">"decoding: minimum code length not reached
      (see min_code_length)."</span><span data-if="dotnet" style="display:none">"decoding: minimum code length not reached
      (see min_code_length)."</span><span data-if="python" style="display:none">"decoding: minimum code length not reached
      (see min_code_length)."</span></i></b></dt>
<dd><p>

The number of characters in the found code is smaller than the
required amount.
See the section <i><span data-if="hdevelop" style="display:inline">'min_code_length'</span><span data-if="c" style="display:none">"min_code_length"</span><span data-if="cpp" style="display:none">"min_code_length"</span><span data-if="com" style="display:none">"min_code_length"</span><span data-if="dotnet" style="display:none">"min_code_length"</span><span data-if="python" style="display:none">"min_code_length"</span></i> in
<a href="set_bar_code_param.html"><code><span data-if="hdevelop" style="display:inline">set_bar_code_param</span><span data-if="c" style="display:none">set_bar_code_param</span><span data-if="cpp" style="display:none">SetBarCodeParam</span><span data-if="com" style="display:none">SetBarCodeParam</span><span data-if="dotnet" style="display:none">SetBarCodeParam</span><span data-if="python" style="display:none">set_bar_code_param</span></code></a> for further information about the
minimal required code length.
</p></dd>

<dt><b>27 - <i><span data-if="hdevelop" style="display:inline">'decoding: maximum code length exceeded
      (see max_code_length).'</span><span data-if="c" style="display:none">"decoding: maximum code length exceeded
      (see max_code_length)."</span><span data-if="cpp" style="display:none">"decoding: maximum code length exceeded
      (see max_code_length)."</span><span data-if="com" style="display:none">"decoding: maximum code length exceeded
      (see max_code_length)."</span><span data-if="dotnet" style="display:none">"decoding: maximum code length exceeded
      (see max_code_length)."</span><span data-if="python" style="display:none">"decoding: maximum code length exceeded
      (see max_code_length)."</span></i></b></dt>
<dd><p>

The number of characters in the found code exceeds the maximum.
See the section <i><span data-if="hdevelop" style="display:inline">'max_code_length'</span><span data-if="c" style="display:none">"max_code_length"</span><span data-if="cpp" style="display:none">"max_code_length"</span><span data-if="com" style="display:none">"max_code_length"</span><span data-if="dotnet" style="display:none">"max_code_length"</span><span data-if="python" style="display:none">"max_code_length"</span></i> in
<a href="set_bar_code_param.html"><code><span data-if="hdevelop" style="display:inline">set_bar_code_param</span><span data-if="c" style="display:none">set_bar_code_param</span><span data-if="cpp" style="display:none">SetBarCodeParam</span><span data-if="com" style="display:none">SetBarCodeParam</span><span data-if="dotnet" style="display:none">SetBarCodeParam</span><span data-if="python" style="display:none">set_bar_code_param</span></code></a> for further information about the
maximum allowed code length.
</p></dd>
</dl>

</li>
<li>
<p> Warning messages:
</p>
<p>The messages listed below are only warnings, not errors. They can
appear in combination with a status message and are then added to
the status message string.
These messages are returned if the bar code reader detects possible
quality issues in the input image. The messages 1000 to 1003 can
appear only for successfully decoded scanlines and only for the
following bar code types: <i><span data-if="hdevelop" style="display:inline">'Codabar'</span><span data-if="c" style="display:none">"Codabar"</span><span data-if="cpp" style="display:none">"Codabar"</span><span data-if="com" style="display:none">"Codabar"</span><span data-if="dotnet" style="display:none">"Codabar"</span><span data-if="python" style="display:none">"Codabar"</span></i>, <i><span data-if="hdevelop" style="display:inline">'2/5 Industrial'</span><span data-if="c" style="display:none">"2/5 Industrial"</span><span data-if="cpp" style="display:none">"2/5 Industrial"</span><span data-if="com" style="display:none">"2/5 Industrial"</span><span data-if="dotnet" style="display:none">"2/5 Industrial"</span><span data-if="python" style="display:none">"2/5 Industrial"</span></i>,
<i><span data-if="hdevelop" style="display:inline">'2/5 Interleaved'</span><span data-if="c" style="display:none">"2/5 Interleaved"</span><span data-if="cpp" style="display:none">"2/5 Interleaved"</span><span data-if="com" style="display:none">"2/5 Interleaved"</span><span data-if="dotnet" style="display:none">"2/5 Interleaved"</span><span data-if="python" style="display:none">"2/5 Interleaved"</span></i>, <i><span data-if="hdevelop" style="display:inline">'Code 39'</span><span data-if="c" style="display:none">"Code 39"</span><span data-if="cpp" style="display:none">"Code 39"</span><span data-if="com" style="display:none">"Code 39"</span><span data-if="dotnet" style="display:none">"Code 39"</span><span data-if="python" style="display:none">"Code 39"</span></i>, <i><span data-if="hdevelop" style="display:inline">'Code 93'</span><span data-if="c" style="display:none">"Code 93"</span><span data-if="cpp" style="display:none">"Code 93"</span><span data-if="com" style="display:none">"Code 93"</span><span data-if="dotnet" style="display:none">"Code 93"</span><span data-if="python" style="display:none">"Code 93"</span></i>,
<i><span data-if="hdevelop" style="display:inline">'GS1-128'</span><span data-if="c" style="display:none">"GS1-128"</span><span data-if="cpp" style="display:none">"GS1-128"</span><span data-if="com" style="display:none">"GS1-128"</span><span data-if="dotnet" style="display:none">"GS1-128"</span><span data-if="python" style="display:none">"GS1-128"</span></i>, <i><span data-if="hdevelop" style="display:inline">'Code 128'</span><span data-if="c" style="display:none">"Code 128"</span><span data-if="cpp" style="display:none">"Code 128"</span><span data-if="com" style="display:none">"Code 128"</span><span data-if="dotnet" style="display:none">"Code 128"</span><span data-if="python" style="display:none">"Code 128"</span></i>, <i><span data-if="hdevelop" style="display:inline">'MSI'</span><span data-if="c" style="display:none">"MSI"</span><span data-if="cpp" style="display:none">"MSI"</span><span data-if="com" style="display:none">"MSI"</span><span data-if="dotnet" style="display:none">"MSI"</span><span data-if="python" style="display:none">"MSI"</span></i>, all
<i><span data-if="hdevelop" style="display:inline">'EAN'</span><span data-if="c" style="display:none">"EAN"</span><span data-if="cpp" style="display:none">"EAN"</span><span data-if="com" style="display:none">"EAN"</span><span data-if="dotnet" style="display:none">"EAN"</span><span data-if="python" style="display:none">"EAN"</span></i>-, <i><span data-if="hdevelop" style="display:inline">'UPC-A'</span><span data-if="c" style="display:none">"UPC-A"</span><span data-if="cpp" style="display:none">"UPC-A"</span><span data-if="com" style="display:none">"UPC-A"</span><span data-if="dotnet" style="display:none">"UPC-A"</span><span data-if="python" style="display:none">"UPC-A"</span></i>- and <i><span data-if="hdevelop" style="display:inline">'UPC-E'</span><span data-if="c" style="display:none">"UPC-E"</span><span data-if="cpp" style="display:none">"UPC-E"</span><span data-if="com" style="display:none">"UPC-E"</span><span data-if="dotnet" style="display:none">"UPC-E"</span><span data-if="python" style="display:none">"UPC-E"</span></i>-variants.
Note that in cases where scanlines were already decoded incorrectly
but not recognized as invalid by the bar code reader, these warnings
will be wrong and must be ignored.
</p>
<dl class="generic">

<dt><b>1000 - <i><span data-if="hdevelop" style="display:inline">'White spaces too wide.'</span><span data-if="c" style="display:none">"White spaces too wide."</span><span data-if="cpp" style="display:none">"White spaces too wide."</span><span data-if="com" style="display:none">"White spaces too wide."</span><span data-if="dotnet" style="display:none">"White spaces too wide."</span><span data-if="python" style="display:none">"White spaces too wide."</span></i></b></dt>
<dd><p>

The measured width of the white spaces is bigger than internally
expected. This is not a decoding error, but a warning that
increasing white spaces could lead to undecodable symbols.
</p></dd>

<dt><b>1001 - <i><span data-if="hdevelop" style="display:inline">'White spaces too narrow.'</span><span data-if="c" style="display:none">"White spaces too narrow."</span><span data-if="cpp" style="display:none">"White spaces too narrow."</span><span data-if="com" style="display:none">"White spaces too narrow."</span><span data-if="dotnet" style="display:none">"White spaces too narrow."</span><span data-if="python" style="display:none">"White spaces too narrow."</span></i></b></dt>
<dd><p>

The measured width of the white spaces is smaller than internally
expected. This is not a decoding error, but a warning that
decreasing white spaces could lead to undecodable symbols.
</p></dd>

<dt><b>1002 - <i><span data-if="hdevelop" style="display:inline">'Bars too wide.'</span><span data-if="c" style="display:none">"Bars too wide."</span><span data-if="cpp" style="display:none">"Bars too wide."</span><span data-if="com" style="display:none">"Bars too wide."</span><span data-if="dotnet" style="display:none">"Bars too wide."</span><span data-if="python" style="display:none">"Bars too wide."</span></i></b></dt>
<dd><p>

The measured width of the bars is bigger than internally
expected. This is not a decoding error, but a warning that
increasing the width of the bars could lead to undecodable symbols.
</p></dd>

<dt><b>1003 - <i><span data-if="hdevelop" style="display:inline">'Bars too narrow.'</span><span data-if="c" style="display:none">"Bars too narrow."</span><span data-if="cpp" style="display:none">"Bars too narrow."</span><span data-if="com" style="display:none">"Bars too narrow."</span><span data-if="dotnet" style="display:none">"Bars too narrow."</span><span data-if="python" style="display:none">"Bars too narrow."</span></i></b></dt>
<dd><p>

The measured width of the bars is smaller than internally
expected. This is not a decoding error, but a warning that
decreasing the width of the bars could lead to undecodable symbols.
</p></dd>

<dt><b>1004 - <i><span data-if="hdevelop" style="display:inline">'Possible saturation of gray values.'</span><span data-if="c" style="display:none">"Possible saturation of gray values."</span><span data-if="cpp" style="display:none">"Possible saturation of gray values."</span><span data-if="com" style="display:none">"Possible saturation of gray values."</span><span data-if="dotnet" style="display:none">"Possible saturation of gray values."</span><span data-if="python" style="display:none">"Possible saturation of gray values."</span></i></b></dt>
<dd><p>

Internal algorithms show that the white pixels in the symbol
region could be saturated.
This warning is not bar code type specific.
This warning is returned for each scanline.
For example, the combination of the status messages 1001/1004 or
1003/1004 is a hint, that the input images might be overexposed.
</p></dd>

<dt><b>1005 - <i><span data-if="hdevelop" style="display:inline">'No composite component found.'</span><span data-if="c" style="display:none">"No composite component found."</span><span data-if="cpp" style="display:none">"No composite component found."</span><span data-if="com" style="display:none">"No composite component found."</span><span data-if="dotnet" style="display:none">"No composite component found."</span><span data-if="python" style="display:none">"No composite component found."</span></i></b></dt>
<dd><p>

The linkage flag in the linear bar code component indicates
that there should be a composite component, but the composite
component could not be found. The decoder returned
the linear component only. This warning is returned for each scanline.
</p></dd>

<dt><b>1006 - <i><span data-if="hdevelop" style="display:inline">'Used for merging.'</span><span data-if="c" style="display:none">"Used for merging."</span><span data-if="cpp" style="display:none">"Used for merging."</span><span data-if="com" style="display:none">"Used for merging."</span><span data-if="dotnet" style="display:none">"Used for merging."</span><span data-if="python" style="display:none">"Used for merging."</span></i></b></dt>
<dd><p>

This message is an information that some edges of the current
scanline were used to compute the merged scanline.
</p></dd>
</dl>

</li>
</ul>

</dd>

<dt><b><i><span data-if="hdevelop" style="display:inline">'status_id'</span><span data-if="c" style="display:none">"status_id"</span><span data-if="cpp" style="display:none">"status_id"</span><span data-if="com" style="display:none">"status_id"</span><span data-if="dotnet" style="display:none">"status_id"</span><span data-if="python" style="display:none">"status_id"</span></i>:</b></dt>
<dd>
<p>

returns additional information about scanlines in a numeric format that
can be easily parsed.
The description of this functionality and the message numbers are
described with the parameter <i><span data-if="hdevelop" style="display:inline">'status'</span><span data-if="c" style="display:none">"status"</span><span data-if="cpp" style="display:none">"status"</span><span data-if="com" style="display:none">"status"</span><span data-if="dotnet" style="display:none">"status"</span><span data-if="python" style="display:none">"status"</span></i> above.
The numbers of the warnings can be returned together with
other status numbers. The single status message and warning numbers for
each scanline are returned as a
string, separated by a semicolon, e.g., <code>'1;1000;1004'</code>.
</p>
</dd>

<dt><b><i><span data-if="hdevelop" style="display:inline">'status_small_elements_robustness'</span><span data-if="c" style="display:none">"status_small_elements_robustness"</span><span data-if="cpp" style="display:none">"status_small_elements_robustness"</span><span data-if="com" style="display:none">"status_small_elements_robustness"</span><span data-if="dotnet" style="display:none">"status_small_elements_robustness"</span><span data-if="python" style="display:none">"status_small_elements_robustness"</span></i>:</b></dt>
<dd>
<p>

determines the status of an optional decoding attempt, which is described
in the section about <i><span data-if="hdevelop" style="display:inline">'small_elements_robustness'</span><span data-if="c" style="display:none">"small_elements_robustness"</span><span data-if="cpp" style="display:none">"small_elements_robustness"</span><span data-if="com" style="display:none">"small_elements_robustness"</span><span data-if="dotnet" style="display:none">"small_elements_robustness"</span><span data-if="python" style="display:none">"small_elements_robustness"</span></i> in
<a href="set_bar_code_param.html"><code><span data-if="hdevelop" style="display:inline">set_bar_code_param</span><span data-if="c" style="display:none">set_bar_code_param</span><span data-if="cpp" style="display:none">SetBarCodeParam</span><span data-if="com" style="display:none">SetBarCodeParam</span><span data-if="dotnet" style="display:none">SetBarCodeParam</span><span data-if="python" style="display:none">set_bar_code_param</span></code></a>.  Additionally to the messages listed for
<i><span data-if="hdevelop" style="display:inline">'status'</span><span data-if="c" style="display:none">"status"</span><span data-if="cpp" style="display:none">"status"</span><span data-if="com" style="display:none">"status"</span><span data-if="dotnet" style="display:none">"status"</span><span data-if="python" style="display:none">"status"</span></i>, <i><span data-if="hdevelop" style="display:inline">'status_small_elements_robustness'</span><span data-if="c" style="display:none">"status_small_elements_robustness"</span><span data-if="cpp" style="display:none">"status_small_elements_robustness"</span><span data-if="com" style="display:none">"status_small_elements_robustness"</span><span data-if="dotnet" style="display:none">"status_small_elements_robustness"</span><span data-if="python" style="display:none">"status_small_elements_robustness"</span></i> can return
the status <i><span data-if="hdevelop" style="display:inline">'small_elements_robustness: no scan.'</span><span data-if="c" style="display:none">"small_elements_robustness: no scan."</span><span data-if="cpp" style="display:none">"small_elements_robustness: no scan."</span><span data-if="com" style="display:none">"small_elements_robustness: no scan."</span><span data-if="dotnet" style="display:none">"small_elements_robustness: no scan."</span><span data-if="python" style="display:none">"small_elements_robustness: no scan."</span></i> if for some
reason the algorithm was not executed or failed.
</p>
</dd>

<dt><b><i><span data-if="hdevelop" style="display:inline">'decode_feature'</span><span data-if="c" style="display:none">"decode_feature"</span><span data-if="cpp" style="display:none">"decode_feature"</span><span data-if="com" style="display:none">"decode_feature"</span><span data-if="dotnet" style="display:none">"decode_feature"</span><span data-if="python" style="display:none">"decode_feature"</span></i>:</b></dt>
<dd>
<p>

returns the feature that is used for the successful symbol decoding.</p>
<p>
The returned result is a single value.</p>
<p>
<span class="pardesc"><span class="parcat">Suggested values:
      </span></span> <i><span data-if="hdevelop" style="display:inline">'standard'</span><span data-if="c" style="display:none">"standard"</span><span data-if="cpp" style="display:none">"standard"</span><span data-if="com" style="display:none">"standard"</span><span data-if="dotnet" style="display:none">"standard"</span><span data-if="python" style="display:none">"standard"</span></i>,
<i><span data-if="hdevelop" style="display:inline">'merge_scanlines'</span><span data-if="c" style="display:none">"merge_scanlines"</span><span data-if="cpp" style="display:none">"merge_scanlines"</span><span data-if="com" style="display:none">"merge_scanlines"</span><span data-if="dotnet" style="display:none">"merge_scanlines"</span><span data-if="python" style="display:none">"merge_scanlines"</span></i>,
<i><span data-if="hdevelop" style="display:inline">'small_elements_robustness'</span><span data-if="c" style="display:none">"small_elements_robustness"</span><span data-if="cpp" style="display:none">"small_elements_robustness"</span><span data-if="com" style="display:none">"small_elements_robustness"</span><span data-if="dotnet" style="display:none">"small_elements_robustness"</span><span data-if="python" style="display:none">"small_elements_robustness"</span></i>.
</p>
</dd>
</dl>
<h2 id="sec_execution">运行信息</h2>
<ul>
  <li>多线程类型:可重入(与非独占操作符并行运行)。</li>
<li>多线程作用域:全局(可以从任何线程调用)。</li>
  <li>未经并行化处理。</li>
</ul>
<h2 id="sec_parameters">参数表</h2>
  <div class="par">
<div class="parhead">
<span id="BarCodeHandle" class="parname"><b><code><span data-if="hdevelop" style="display:inline">BarCodeHandle</span><span data-if="c" style="display:none">BarCodeHandle</span><span data-if="cpp" style="display:none">BarCodeHandle</span><span data-if="com" style="display:none">BarCodeHandle</span><span data-if="dotnet" style="display:none">barCodeHandle</span><span data-if="python" style="display:none">bar_code_handle</span></code></b> (input_control)  </span><span>barcode <code>→</code> <span data-if="dotnet" style="display:none"><a href="HBarCode.html">HBarCode</a>, </span><span data-if="dotnet" style="display:none"><a href="HTuple.html">HTuple</a></span><span data-if="python" style="display:none">HHandle</span><span data-if="cpp" style="display:none"><a href="HTuple.html">HTuple</a></span><span data-if="c" style="display:none">Htuple</span><span data-if="hdevelop" style="display:inline"> (handle)</span><span data-if="dotnet" style="display:none"> (<i>IntPtr</i>)</span><span data-if="cpp" style="display:none"> (<i>HHandle</i>)</span><span data-if="c" style="display:none"> (<i>handle</i>)</span></span>
</div>
<p class="pardesc">Handle of the bar code model.</p>
</div>
  <div class="par">
<div class="parhead">
<span id="CandidateHandle" class="parname"><b><code><span data-if="hdevelop" style="display:inline">CandidateHandle</span><span data-if="c" style="display:none">CandidateHandle</span><span data-if="cpp" style="display:none">CandidateHandle</span><span data-if="com" style="display:none">CandidateHandle</span><span data-if="dotnet" style="display:none">candidateHandle</span><span data-if="python" style="display:none">candidate_handle</span></code></b> (input_control)  </span><span>integer <code>→</code> <span data-if="dotnet" style="display:none"><a href="HTuple.html">HTuple</a></span><span data-if="python" style="display:none">Union[int, str]</span><span data-if="cpp" style="display:none"><a href="HTuple.html">HTuple</a></span><span data-if="c" style="display:none">Htuple</span><span data-if="hdevelop" style="display:inline"> (string / </span><span data-if="hdevelop" style="display:inline">integer)</span><span data-if="dotnet" style="display:none"> (<i>string</i> / </span><span data-if="dotnet" style="display:none">int / </span><span data-if="dotnet" style="display:none">long)</span><span data-if="cpp" style="display:none"> (<i>HString</i> / </span><span data-if="cpp" style="display:none">Hlong)</span><span data-if="c" style="display:none"> (<i>char*</i> / </span><span data-if="c" style="display:none">Hlong)</span></span>
</div>
<p class="pardesc">Indicating the bar code results respectively
candidates for which the data is required.</p>
<p class="pardesc"><span class="parcat">Default:
      </span>
    <span data-if="hdevelop" style="display:inline">'all'</span>
    <span data-if="c" style="display:none">"all"</span>
    <span data-if="cpp" style="display:none">"all"</span>
    <span data-if="com" style="display:none">"all"</span>
    <span data-if="dotnet" style="display:none">"all"</span>
    <span data-if="python" style="display:none">"all"</span>
</p>
<p class="pardesc"><span class="parcat">Suggested values:
      </span>0, 1, 2, <span data-if="hdevelop" style="display:inline">'all'</span><span data-if="c" style="display:none">"all"</span><span data-if="cpp" style="display:none">"all"</span><span data-if="com" style="display:none">"all"</span><span data-if="dotnet" style="display:none">"all"</span><span data-if="python" style="display:none">"all"</span></p>
</div>
  <div class="par">
<div class="parhead">
<span id="ResultName" class="parname"><b><code><span data-if="hdevelop" style="display:inline">ResultName</span><span data-if="c" style="display:none">ResultName</span><span data-if="cpp" style="display:none">ResultName</span><span data-if="com" style="display:none">ResultName</span><span data-if="dotnet" style="display:none">resultName</span><span data-if="python" style="display:none">result_name</span></code></b> (input_control)  </span><span>attribute.name <code>→</code> <span data-if="dotnet" style="display:none"><a href="HTuple.html">HTuple</a></span><span data-if="python" style="display:none">str</span><span data-if="cpp" style="display:none"><a href="HTuple.html">HTuple</a></span><span data-if="c" style="display:none">Htuple</span><span data-if="hdevelop" style="display:inline"> (string)</span><span data-if="dotnet" style="display:none"> (<i>string</i>)</span><span data-if="cpp" style="display:none"> (<i>HString</i>)</span><span data-if="c" style="display:none"> (<i>char*</i>)</span></span>
</div>
<p class="pardesc">Names of the resulting data to return.</p>
<p class="pardesc"><span class="parcat">Default:
      </span>
    <span data-if="hdevelop" style="display:inline">'decoded_types'</span>
    <span data-if="c" style="display:none">"decoded_types"</span>
    <span data-if="cpp" style="display:none">"decoded_types"</span>
    <span data-if="com" style="display:none">"decoded_types"</span>
    <span data-if="dotnet" style="display:none">"decoded_types"</span>
    <span data-if="python" style="display:none">"decoded_types"</span>
</p>
<p class="pardesc"><span class="parcat">Suggested values:
      </span><span data-if="hdevelop" style="display:inline">'decoded_types'</span><span data-if="c" style="display:none">"decoded_types"</span><span data-if="cpp" style="display:none">"decoded_types"</span><span data-if="com" style="display:none">"decoded_types"</span><span data-if="dotnet" style="display:none">"decoded_types"</span><span data-if="python" style="display:none">"decoded_types"</span>, <span data-if="hdevelop" style="display:inline">'decoded_strings'</span><span data-if="c" style="display:none">"decoded_strings"</span><span data-if="cpp" style="display:none">"decoded_strings"</span><span data-if="com" style="display:none">"decoded_strings"</span><span data-if="dotnet" style="display:none">"decoded_strings"</span><span data-if="python" style="display:none">"decoded_strings"</span>, <span data-if="hdevelop" style="display:inline">'decoded_data'</span><span data-if="c" style="display:none">"decoded_data"</span><span data-if="cpp" style="display:none">"decoded_data"</span><span data-if="com" style="display:none">"decoded_data"</span><span data-if="dotnet" style="display:none">"decoded_data"</span><span data-if="python" style="display:none">"decoded_data"</span>, <span data-if="hdevelop" style="display:inline">'decoded_reference'</span><span data-if="c" style="display:none">"decoded_reference"</span><span data-if="cpp" style="display:none">"decoded_reference"</span><span data-if="com" style="display:none">"decoded_reference"</span><span data-if="dotnet" style="display:none">"decoded_reference"</span><span data-if="python" style="display:none">"decoded_reference"</span>, <span data-if="hdevelop" style="display:inline">'element_size'</span><span data-if="c" style="display:none">"element_size"</span><span data-if="cpp" style="display:none">"element_size"</span><span data-if="com" style="display:none">"element_size"</span><span data-if="dotnet" style="display:none">"element_size"</span><span data-if="python" style="display:none">"element_size"</span>, <span data-if="hdevelop" style="display:inline">'orientation'</span><span data-if="c" style="display:none">"orientation"</span><span data-if="cpp" style="display:none">"orientation"</span><span data-if="com" style="display:none">"orientation"</span><span data-if="dotnet" style="display:none">"orientation"</span><span data-if="python" style="display:none">"orientation"</span>, <span data-if="hdevelop" style="display:inline">'composite_strings'</span><span data-if="c" style="display:none">"composite_strings"</span><span data-if="cpp" style="display:none">"composite_strings"</span><span data-if="com" style="display:none">"composite_strings"</span><span data-if="dotnet" style="display:none">"composite_strings"</span><span data-if="python" style="display:none">"composite_strings"</span>, <span data-if="hdevelop" style="display:inline">'composite_reference'</span><span data-if="c" style="display:none">"composite_reference"</span><span data-if="cpp" style="display:none">"composite_reference"</span><span data-if="com" style="display:none">"composite_reference"</span><span data-if="dotnet" style="display:none">"composite_reference"</span><span data-if="python" style="display:none">"composite_reference"</span>, <span data-if="hdevelop" style="display:inline">'aborted'</span><span data-if="c" style="display:none">"aborted"</span><span data-if="cpp" style="display:none">"aborted"</span><span data-if="com" style="display:none">"aborted"</span><span data-if="dotnet" style="display:none">"aborted"</span><span data-if="python" style="display:none">"aborted"</span>, <span data-if="hdevelop" style="display:inline">'gs1_lint_result'</span><span data-if="c" style="display:none">"gs1_lint_result"</span><span data-if="cpp" style="display:none">"gs1_lint_result"</span><span data-if="com" style="display:none">"gs1_lint_result"</span><span data-if="dotnet" style="display:none">"gs1_lint_result"</span><span data-if="python" style="display:none">"gs1_lint_result"</span>, <span data-if="hdevelop" style="display:inline">'gs1_lint_passed'</span><span data-if="c" style="display:none">"gs1_lint_passed"</span><span data-if="cpp" style="display:none">"gs1_lint_passed"</span><span data-if="com" style="display:none">"gs1_lint_passed"</span><span data-if="dotnet" style="display:none">"gs1_lint_passed"</span><span data-if="python" style="display:none">"gs1_lint_passed"</span>, <span data-if="hdevelop" style="display:inline">'quality_isoiec15416'</span><span data-if="c" style="display:none">"quality_isoiec15416"</span><span data-if="cpp" style="display:none">"quality_isoiec15416"</span><span data-if="com" style="display:none">"quality_isoiec15416"</span><span data-if="dotnet" style="display:none">"quality_isoiec15416"</span><span data-if="python" style="display:none">"quality_isoiec15416"</span>, <span data-if="hdevelop" style="display:inline">'quality_isoiec15416_labels'</span><span data-if="c" style="display:none">"quality_isoiec15416_labels"</span><span data-if="cpp" style="display:none">"quality_isoiec15416_labels"</span><span data-if="com" style="display:none">"quality_isoiec15416_labels"</span><span data-if="dotnet" style="display:none">"quality_isoiec15416_labels"</span><span data-if="python" style="display:none">"quality_isoiec15416_labels"</span>, <span data-if="hdevelop" style="display:inline">'quality_isoiec15416_values'</span><span data-if="c" style="display:none">"quality_isoiec15416_values"</span><span data-if="cpp" style="display:none">"quality_isoiec15416_values"</span><span data-if="com" style="display:none">"quality_isoiec15416_values"</span><span data-if="dotnet" style="display:none">"quality_isoiec15416_values"</span><span data-if="python" style="display:none">"quality_isoiec15416_values"</span>, <span data-if="hdevelop" style="display:inline">'quality_isoiec15416_float_grades'</span><span data-if="c" style="display:none">"quality_isoiec15416_float_grades"</span><span data-if="cpp" style="display:none">"quality_isoiec15416_float_grades"</span><span data-if="com" style="display:none">"quality_isoiec15416_float_grades"</span><span data-if="dotnet" style="display:none">"quality_isoiec15416_float_grades"</span><span data-if="python" style="display:none">"quality_isoiec15416_float_grades"</span>, <span data-if="hdevelop" style="display:inline">'status'</span><span data-if="c" style="display:none">"status"</span><span data-if="cpp" style="display:none">"status"</span><span data-if="com" style="display:none">"status"</span><span data-if="dotnet" style="display:none">"status"</span><span data-if="python" style="display:none">"status"</span>, <span data-if="hdevelop" style="display:inline">'status_id'</span><span data-if="c" style="display:none">"status_id"</span><span data-if="cpp" style="display:none">"status_id"</span><span data-if="com" style="display:none">"status_id"</span><span data-if="dotnet" style="display:none">"status_id"</span><span data-if="python" style="display:none">"status_id"</span>, <span data-if="hdevelop" style="display:inline">'status_small_elements_robustness'</span><span data-if="c" style="display:none">"status_small_elements_robustness"</span><span data-if="cpp" style="display:none">"status_small_elements_robustness"</span><span data-if="com" style="display:none">"status_small_elements_robustness"</span><span data-if="dotnet" style="display:none">"status_small_elements_robustness"</span><span data-if="python" style="display:none">"status_small_elements_robustness"</span>, <span data-if="hdevelop" style="display:inline">'decode_feature'</span><span data-if="c" style="display:none">"decode_feature"</span><span data-if="cpp" style="display:none">"decode_feature"</span><span data-if="com" style="display:none">"decode_feature"</span><span data-if="dotnet" style="display:none">"decode_feature"</span><span data-if="python" style="display:none">"decode_feature"</span></p>
</div>
  <div class="par">
<div class="parhead">
<span id="BarCodeResults" class="parname"><b><code><span data-if="hdevelop" style="display:inline">BarCodeResults</span><span data-if="c" style="display:none">BarCodeResults</span><span data-if="cpp" style="display:none">BarCodeResults</span><span data-if="com" style="display:none">BarCodeResults</span><span data-if="dotnet" style="display:none">barCodeResults</span><span data-if="python" style="display:none">bar_code_results</span></code></b> (output_control)  </span><span>attribute.value(-array) <code>→</code> <span data-if="dotnet" style="display:none"><a href="HTuple.html">HTuple</a></span><span data-if="python" style="display:none">Sequence[Union[int, float, str]]</span><span data-if="cpp" style="display:none"><a href="HTuple.html">HTuple</a></span><span data-if="c" style="display:none">Htuple</span><span data-if="hdevelop" style="display:inline"> (string / </span><span data-if="hdevelop" style="display:inline">integer / </span><span data-if="hdevelop" style="display:inline">real)</span><span data-if="dotnet" style="display:none"> (<i>string</i> / </span><span data-if="dotnet" style="display:none">int / </span><span data-if="dotnet" style="display:none">long / </span><span data-if="dotnet" style="display:none">double)</span><span data-if="cpp" style="display:none"> (<i>HString</i> / </span><span data-if="cpp" style="display:none">Hlong / </span><span data-if="cpp" style="display:none">double)</span><span data-if="c" style="display:none"> (<i>char*</i> / </span><span data-if="c" style="display:none">Hlong / </span><span data-if="c" style="display:none">double)</span></span>
</div>
<p class="pardesc">List with the results.</p>
</div>
<h2 id="sec_result">结果</h2>
<p>该算子 <code><span data-if="hdevelop" style="display:inline">get_bar_code_result</span><span data-if="c" style="display:none">get_bar_code_result</span><span data-if="cpp" style="display:none">GetBarCodeResult</span><span data-if="com" style="display:none">GetBarCodeResult</span><span data-if="dotnet" style="display:none">GetBarCodeResult</span><span data-if="python" style="display:none">get_bar_code_result</span></code> 返回值 <TT>2</TT> (
      <TT>H_MSG_TRUE</TT>)
    
if the given parameters are correct and the requested results are
available for the last symbol search.
Otherwise, an exception will be raised.</p>
<h2 id="sec_predecessors">可能的前置算子</h2>
<p>
<code><a href="find_bar_code.html"><span data-if="hdevelop" style="display:inline">find_bar_code</span><span data-if="c" style="display:none">find_bar_code</span><span data-if="cpp" style="display:none">FindBarCode</span><span data-if="com" style="display:none">FindBarCode</span><span data-if="dotnet" style="display:none">FindBarCode</span><span data-if="python" style="display:none">find_bar_code</span></a></code>
</p>
<h2 id="sec_see">参考其它</h2>
<p>
<code><a href="get_bar_code_object.html"><span data-if="hdevelop" style="display:inline">get_bar_code_object</span><span data-if="c" style="display:none">get_bar_code_object</span><span data-if="cpp" style="display:none">GetBarCodeObject</span><span data-if="com" style="display:none">GetBarCodeObject</span><span data-if="dotnet" style="display:none">GetBarCodeObject</span><span data-if="python" style="display:none">get_bar_code_object</span></a></code>
</p>
<h2 id="sec_module">模块</h2>
<p>
Bar Code</p>
<!--OP_REF_FOOTER_START-->
<hr>
<div class="indexlink">
<a href="index_classes.html"><span data-if="dotnet" style="display:none;">类别</span><span data-if="cpp" style="display:none;">类别</span></a><span data-if="dotnet" style="display:none;"> | </span><span data-if="cpp" style="display:none;"> | </span><a href="index_by_name.html">算子列表</a>
</div>
<div class="footer">
<div class="copyright">HALCON算子参考手册 Copyright © 2015-2023 51Halcon</div>
</div>
</div>
</body>
</html>
